ciao a tutti ho un problema con una serie di input dinamici. in pratica
tramite Jquery alla pressione di un tasto mi vengono creati una serie di input e su ogni input alla pressione del tasto viene rihciamata una funzione per eseguire dei calcoli. il problema è che su alcuni campi non si dovrebbero usare i numeri, su taluni altri non andrebbero usati i caratteri di testo o la virgola.
posto parte del codice giusto per farvi capire in maniera (forse) più chiara.
codice:
function accoda(){
var nim=num;
$("#tbody")
.append($('<tr>')
.append($('<td align="center"></td>'))
.append($('<td align="center">')
.append($("<input>",{type: "button"})
.attr({id:'elimina'+num, value:'x'})
.click(function() {
$(this).parents("tr:first").remove();
})
.bind('click', recalc)
)
)
.append($('<td align="center"><h1 id="JQcodice_'+num+'"></h1><input type="hidden" name="codice'+num+'" id="JQhidCodice_'+num+'"><input type="hidden" name="id_art'+num+'" id="JQidArt_'+num+'"><input type="hidden" name="n_art'+num+'-unimis" id="JQunimis_'+num+'"></td>'))
.append($('<td align="left">')
.append($("<textarea>")
.attr({id:'JQdesc_'+num,cols:"70",name:"desc"+num})
.autocomplete({
source: "../../ajax_articolo.php",
minLength: 3,
select: function( event, ui ) {
$("#JQcodice_"+nim).empty().append(ui.item.codice)
$("#JQunimis_"+nim).val(ui.item.unimis)
$("#JQhidCodice_"+nim).val(ui.item.codice)
$("#JQidArt_"+nim).val(ui.item.id)
$("#JQprezzo_"+nim).val(ui.item.prezzo_ven)
$("#JQunita_"+nim).val("1")
$("#JQprezzoUnita_"+nim).empty().append(ui.item.prezzo_ven)
$("#JQsconto_"+nim).val("0")
$("#JQprezzoSconto_"+nim).empty().append(ui.item.prezzo_ven)
$("#JQid_iva_"+nim).val(ui.item.id_iva)
$("#JQiva_"+nim).val(ui.item.iva)
$("#JQtotale_"+nim).empty().append(function(){$(this).calc(
"price+((price/100)*iva)",
{
price: $("input[id^=JQprezzo_]"),
iva: $("input[id^=JQiva_]")
},
function (s){
return s.toFixed(2);
}
)
})
recalc()
}
})
)
)
//----
// CONTINUA
//-----
.append($('<td align="center">')
.append($("<input>",{type: "text"})
.attr({id:'JQunita_'+num,size:"2",name:"n_art"+num+"-vendi"})
.bind('keyup', recalc)
)
)
.append($('<td align="center"><h1 id="JQprezzoUnita_'+num+'"></h1></td>'))
.append($('<td align="center">')
.append($("<input>",{type: "text"})
.attr({id:'JQsconto_'+num,size:"2",name:"n_art"+num+"-sconto"})
.bind('keyup', recalc)
)
)
.append($('<td align="center"><h1 id="JQivaEuro_'+num+'"></h1></td>'))
.append($('<td align="center"><h1 id="JQtotale_'+num+'"></h1></td>'))
);
$("#MaxIdArticolo").val(num);
num++
}
function recalc(){
//----
// CONTINUA
//-----
}
ho provato a usare il plugin di jquery "keyfilter" ma non prende i campi. o melgio, se usato su input con name statici funziona perfettamente se lo uso su input dinamici tipo
codice:
$("[name^=JQSconto_]").keyFilter(\[\d\.]\);
ovviamente non va.
ho provato a creare una funzione all'interno del .bind, a creare una funione esterna e poi bindarla ...nulla..
sto benedetto "filtro" ai campi input non riesco ad inserirlo.
qualche consiglio?