为什么.val()不是函数? [英] Why is .val() not a function?
问题描述
我有一个动态表单,用户提供名称和说明:
I have a dynamic form where the user provides a name and description:
<label>Name</label><br />
<input type="text" name="name[]" maxlength="255" /><br />
<label>Description</label><br />
<textarea name="desc[]"></textarea><br />
我正在尝试使用Javascript验证表单,以确保如果指定了名称,那么说明必须输入。
I am trying to validate the form with Javascript to ensure that if the name is specified, then a description must be entered.
$("input[name='name[]']").each(function() {
var index = $("input[name='name[]']").index(this);
if ($(this).val() != '') {
alert($("textarea[name='desc[]']").get(index).value);
alert($("textarea[name='desc[]']").get(index).val());
}
}
第一个alert()按预期工作但是我得到的第二个警告:
$(textarea [name ='desc []'])。get(index).val()不是函数
The first alert() works as expected however with the second alert I get: $("textarea[name='desc[]']").get(index).val() is not a function
有什么区别?为什么我不能使用jQuery函数?
What is the difference? Why can't I use the jQuery function?
推荐答案
使用 eq(index)而不是 get(index)和它w返回一个jQuery对象.jQuery对象将有一个val()方法,该方法应该按照textarea的预期工作。
Use eq(index) instead of get(index) and it will return a jQuery object. The jQuery object will have a val() method that should work as expected for a textarea.
返回一个值所有输入
元素,包括选择和
textareas。对于多个选择,返回
数组值。
A value is returned for all input elements, including selects and textareas. For multiple selects an array of values is returned.
示例:
$("input[name='name[]']").each(function() {
var index = $("input[name='name[]']").index(this);
if ($(this).val() != '') {
alert($("textarea[name='desc[]']").eq(index).val());
}
});
这篇关于为什么.val()不是函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!