Ich habe einige Felder mit einem benutzerdefinierten Attribut default
. Wenn ich auf eine Schaltfläche mit der ID reset
klicke, möchte ich den Wert aller Felder mit der Klasse afield
auf den Standardwert ändern.Attribut Wert geben undefined, wenn dies in Foreach
Beispielfelder sind,
<input type="text" class="afield" id="field1" default="10" value="10" />
<input type="text" class="afield" id="field2" default="20" value="20" />
folgenden Code Alle Felder Wert undefined
ändert,
$(document).on('click', '#reset', function(event){
event.preventDefault();
var afields = $('.afield')
$.each(afields ,function(){
this.value = this['default'];
});
});
Aber wenn ich die id
verwenden, das Element zu erhalten und den Wert zu ändern, es funktioniert. Code folgt,
$(document).on('click', '#reset', function(event){
event.preventDefault();
var afields = $('.afield')
$.each(afields ,function(){
var ele = $('#'+this.id)
var defaultval = ele.attr('default')
ele.val(defaultval)
});
});
Warum der erste Ansatz undefined
als Standardwert gibt? Gibt es eine Möglichkeit, this
Objekt innerhalb Schleife zu verwenden und dies zu erreichen?
Haben Sie in ersten Beispiel $ versucht (this) .val ($ (this) .attr ('default'))? – 2oppin