jQuery .attr('value') den Wert undefiniert zurückgibt, für den text-Bereich
Ich habe eine Seite, die dynamisch und bringt in einem Formular über ajax und zeigt es in einem modalen div (eine, die sitzt oben ein overlay-div über die gesamte Seite). Dies ist, lassen Sie Sie speichern bestimmter Daten, bevor das Fenster schließt. Alles funktioniert Super außer eine Sache.
$('#save_close_form').find('*[name]').each(function(index, form_element) {
var cfe = (form_element.jquery == undefined ? $(form_element) : form_element);
console.log(cfe.attr('name') + " => " + cfe.attr('value'));
if (cfe.attr('name').match(/data\[/)) {
if (cfe.attr('type') == 'checkbox') {
if (cfe.attr('checked')) {
map[cfe.attr('name')] = 'on';
}
else {
map[cfe.attr('name')] = '';
}
}
else if (cfe.attr('type') == 'radio') {
//only get checked radio buttons
if (cfe.attr('checked')) {
map[cfe.attr('name')] = cfe.attr('value');
}
}
else {
map[cfe.attr('name')] = cfe.attr('value');
}
}
});
Der Teil in der else {} - Klausel am Ende löst für TextArea
und input type="text"
Elemente, aber für einige Grund es sieht immer cfe.attr('value');
als undefined
für die TextArea
. Ich bin mit der FF6.0 mit jQuery 1.6.
Warum bist du nicht mit
in einer vorherigen version von diesem code habe ich ausprobiert und es funktionierte nie. die seltsame Sache ist, dass der obige code war gut funktioniert, bis vor kurzem, als ich habe ein Upgrade JQ von 1.3 bis 1.6
cfe.val()
?in einer vorherigen version von diesem code habe ich ausprobiert und es funktionierte nie. die seltsame Sache ist, dass der obige code war gut funktioniert, bis vor kurzem, als ich habe ein Upgrade JQ von 1.3 bis 1.6
InformationsquelleAutor Derek | 2011-08-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen
.val()
statt.attr('value')
.<textarea>
nichtvalue
Attribut (der text ist zwischen die tags, nicht invalue=""
) aber ich glaube, dass.val()
abgerufen werden.InformationsquelleAutor JJ.
Für Texteingabefelder verwenden :
statt.
jQuery textarea-text bekommen
Legen Sie den Wert der textarea in jQuery
.html()
wird der Wert der textarea begann mit.val()
erhalten Sie den aktuellen Wert.InformationsquelleAutor AJC
TextArea nicht über ein Attribut namens value...versuchen Sie es mit val
InformationsquelleAutor legendofawesomeness
textarea
keinenvalue
Attribut standardmäßig. Sollten Sie verwendencfe.val()
odercfe.html()
um seine Inhalte.InformationsquelleAutor ShankarSangoli
Es ist, weil eine textarea nicht mit einem value-Attribut.
Verwenden
.val()
statt.InformationsquelleAutor PeeHaa
Ok, also der Grund ist, dass jQuery 1.6 macht eine Unterscheidung zwischen dem Attribut, das bei der Schöpfung und dem aktuellen Wert der Eigenschaft. Haben Sie die textarea ohne ein value-Attribut mehr als wahrscheinlich; so, der erste Wert ist
undefined
. Wenn Sie möchten, ziehen Sie den angegebenen Wert, müssen Sie entweder verwenden.prop('value')
oder rufen Sie die mehr hilfreich.val()
Methode.InformationsquelleAutor Tejs