我有几个文本框需要在发回之前检查。我使用每个函数使用jQuery执行此操作。按下提交按钮(LinkButton1)后,我遍历文本框并检查它们的值:
<asp:textbox id="txt1" class="tocheck" runat="server />
<asp:textbox id="txt2" class="tocheck" runat="server />
<asp:textbox id="txt3" class="tocheck" runat="server />
$('#LinkButton1').click(function () {
var error = false;
$.each('.tocheck', function (i, v) {
checkVal(v.val());
});
});
但是抛出一个运行时错误,说v未定义:
如何检索文本框值?
谢谢。
答案 0 :(得分:6)
您无需传入v
- 将其删除。
然后使用$(this)
代替。
即
$('#LinkButton1').click(function () {
var error = false;
$('.tocheck').each( function () {
checkVal($(this).val());
});
});
答案 1 :(得分:3)
问题是您没有正确传递集合。
$('#LinkButton1').click(function () {
var error = false;
$.each('.text', function (i, v) { // <-- you are passing in a STRING not a collection of elements
checkVal(v.val());
});
});
试
$('#LinkButton1').click(function () {
var error = false;
$.each($('.text'), function (i, v) {
checkVal($(v).val());// <-- need to wrap in jQuery to use jQuery methods
});
});
答案 2 :(得分:3)
你在类选择器中遇到错误。将其更改为
$(".tocheck").each(function(i, v){
checkVal($(v).val());
})
答案 3 :(得分:2)
首先
$.each('.tocheck', function (i, v) {
checkVal(v.val());
});
应该是
$('.tocheck').each(function (i, v) {
checkVal(v.value);
});
&#39; 或强> /
$.each( $('.tocheck'), function (i, v) {
checkVal(v.value);
});
其次 v 这里是 DOM对象,您正试图在其上使用 jQuery方法。这就是原因对于错误..
所以v.val()
应该是
v.value
或 $(v).val();
或 this.value
或 $(this).val();
答案 4 :(得分:1)
$.each
函数主要用于值数组,如整数或字符串,这就是为什么v不是item而不是item。所以你应该使用每个jQuery数组,如下所示。
$(".tocheck").each(function (index, item)
{
alert($(item).val());
});
答案 5 :(得分:0)
$('.tocheck').each( function () {
checkVal($(this).val());
});