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.
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 tipocodice: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 //----- }
ovviamente non va.codice:$("[name^=JQSconto_]").keyFilter(\[\d\.]\);
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?

Rispondi quotando