为什么.val()不是函数?
我有一个动态表单,用户提供名称和描述:
我正在尝试使用Javascriptvalidation表单,以确保如果指定了名称,则必须输入说明。
$("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()不是函数
有什么不同? 为什么我不能使用jQuery函数?
使用eq(index)而不是get(index) ,它将返回一个jQuery对象。 jQuery对象将有一个val()方法,该方法应该按照textarea的预期工作。
val()文档
为所有输入元素返回一个值,包括selection和textareas。 对于多个选择,返回值数组。
例:
$("input[name='name[]']").each(function() { var index = $("input[name='name[]']").index(this); if ($(this).val() != '') { alert($("textarea[name='desc[]']").eq(index).val()); } });
因为
$("textarea[name='desc[]']").get(index);
是DOM对象,而不是jquery。 它没有方法val。 使用
$("textarea[name='desc[]']:eq(" + index + ")").val();
对于textarea值。