使用jquery比较两个文本框的数据不起作用

时间:2013-08-28 11:39:17

标签: jquery html asp.net

我想使用jquery比较两个文本框的数据,比如我们在制作电子邮件帐户时比较密码和确认密码。我仍然有以下的东西。

CSS

.test {
    display:none;
}

HTML

<input type="text" name="t1" />
<input type="text" name="t2" />
<label class="test" name="lblerror">Error</label>

的jQuery

$("#t2").click(function () {
    if ($("#t1").val() === $("#t2").val()) {} else {
        $("#lblerror").removeClass("test");
    }
});

DEMO

请帮助我,如何在离开名为t2的第二个文本框时比较这两个字符串。

提前致谢。

7 个答案:

答案 0 :(得分:4)

试试这个

你在Jquery中使用name作为Id,这是错误的。将名称转换为id。那就行了。

<input type="text" id="t1" />
<input type="text" id="t2" />
<label class="test" id="lblerror">Error</label>

JS

$(function(){
    $("#t2").change(function () {
                 if ($("#t1").val() === $("#t2").val()) {
                    $("#lblerror").addClass("test");        
                }
                else {
                    $("#lblerror").removeClass("test");
                }
            });
    });

Demo

答案 1 :(得分:1)

在你的HTML中

<input type="text" name="t1" />
    <input type="text" name="t2" />

你没有提供身份证件

您的代码应该是

<input type="text" name="t1"  id="t1" />
<input type="text" name="t2" id="t2"  />

此外,您需要添加blur事件。

$("#t2").blur(function () {
                    if ($("#t1").val() == $("#t2").val()) {
                      $("#lblerror").removeClass("test");
                    }
                    else {
                       $("#lblerror").addClass("test");  
                    } 
                });

Updated fiddle

答案 2 :(得分:1)

$("#t2")会引用包含id="t2"的元素,但您的所有字段只有name而没有id。您应该在字段中添加id以访问它。

尝试将您的HTML代码更改为如下所示:

<input type="text" id="t1" />
<input type="text" id="t2" />
<label class="test" id="lblerror">Error</label>

您可以使用以下代码然后比较两个字段的值,然后根据比较结果显示/隐藏标签错误。

$("#t2").on("blur", function () {
    if ($("#t1").val() === $("#t2").val()) {
        $("#lblerror").hide();
    } else {
        $("#lblerror").show();
    }
});

答案 3 :(得分:1)

尝试这样的事情

$('form').submit(function(evt) {
   if ($('#textbox1').val() === $('#textbox2').val()) {
     alert('values match');
     evt.preventDefault();
   }
}

使用.submit()方法绑定到表单的submit事件,然后比较文本框中的2个值 - 如果它们相同则显示警告,然后使用事件阻止默认操作(表单提交)。 preventDefault()方法

Working example demo here

答案 4 :(得分:1)

如果您需要通过$(“#t1”)获取元素,则t1应为id,而不是名称。

将id =“t1”添加到输入标记。

<input type="text" name="t1"  id="t1" />
<input type="text" name="t2" id="t2"  />

答案 5 :(得分:0)

name属性不能以这种方式用作选择器。此外,在你的jquery中你使用了“#”,它根据id来选择一个元素。按如下方式更改HTML:

<input type="text" id="t1" />
<input type="text" id="t2" />
<label class="test" id="lblerror">Error</label>  

答案 6 :(得分:0)

我将其更改为ID而不是名称和模糊事件,而不是单击

点击要求您在输入

后再次点击它
$("#t2").blur(function () {



                        if ($("#t1").val() === $("#t2").val()) {
                         $("#lblerror").removeClass("test");

                        }
                        else {
                           $("#lblerror").addClass("test");    

                        }


    });