1

我有几个文本框,在将它们发回之前我需要检查它们。我使用 jQuery 使用每个函数来执行此操作。当按下提交按钮(LinkBut​​ton1)时,我遍历文本框并检查它们的值:

<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 未定义:

在此处输入图像描述

如何检索文本框值?

谢谢你。

4

6 回答 6

6

你不需要传入v- 删除它。

$(this)改为使用。

IE

$('#LinkButton1').click(function () {
    var error = false;
    $('.tocheck').each( function () {
        checkVal($(this).val());
    });
});
于 2012-11-21T16:13:46.027 回答
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
    });
});
于 2012-11-21T16:18:36.807 回答
3

您在类选择器中遇到错误。将其更改为

$(".tocheck").each(function(i, v){
    checkVal($(v).val());
})
于 2012-11-21T16:18:14.513 回答
2

首先

$.each('.tocheck', function (i, v) {
        checkVal(v.val());
    });

应该是

$('.tocheck').each(function (i, v) {
        checkVal(v.value);
});

' /

 $.each( $('.tocheck'), function (i, v) {
            checkVal(v.value);
        });

其次 ,这里的vDOM 对象,您正在尝试在其上使用jQuery 方法..这就是错误的原因..

所以v.val()

应该是

v.value $(v).val(); this.value $(this).val();

于 2012-11-21T16:22:21.930 回答
1

$.each函数主要用于值数组,例如整数或字符串,这就是为什么 v 是值而不是项的原因。所以你应该使用下面的每个 jQuery 数组。

$(".tocheck").each(function (index, item)
{
   alert($(item).val());
});
于 2012-11-21T16:17:27.103 回答
0
$('.tocheck').each( function () {
        checkVal($(this).val());
    });
于 2012-11-21T16:13:38.303 回答