我有一个动态表单,用户提供名称和描述:
<label>Name</label><br />
<input type="text" name="name[]" maxlength="255" /><br />
<label>Description</label><br />
<textarea name="desc[]"></textarea><br />
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用Javascript验证表单,以确保如果指定了名称,则必须输入说明.
$("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());
}
}
Run Code Online (Sandbox Code Playgroud)
第一个alert()按预期工作但是我得到第二个警告:$("textarea [name ='desc []']").get(index).val()不是函数
有什么不同?为什么我不能使用jQuery函数?
Ana*_*liy 17
因为
$("textarea[name='desc[]']").get(index);
Run Code Online (Sandbox Code Playgroud)
是DOM对象,而不是jquery.它没有方法val.使用
$("textarea[name='desc[]']:eq(" + index + ")").val();
Run Code Online (Sandbox Code Playgroud)
对于textarea值.
tva*_*son 16
使用eq(index)而不是get(index),它将返回一个jQuery对象.jQuery对象将有一个val()方法,该方法应该按照textarea的预期工作.
为所有输入元素返回一个值,包括selection和textareas.对于多个选择,返回值数组.
例:
$("input[name='name[]']").each(function() {
var index = $("input[name='name[]']").index(this);
if ($(this).val() != '') {
alert($("textarea[name='desc[]']").eq(index).val());
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34318 次 |
| 最近记录: |