Javascript 在jQuery中使用.change()进行验证

Javascript 在jQuery中使用.change()进行验证,javascript,jquery,Javascript,Jquery,因此,我使用jQuery的.change()函数触发对该特定表中其他字段的验证。请参阅下面的代码。。。。我遇到的问题是:如果我在输入字段中键入某个内容,然后将其删除,它仍然认为它已更改,并且需要其他字段。我可以看出这对用户来说是个问题,这有什么问题吗 p、 s.class=“R”来自我的自定义验证,使其成为必填字段 $('#t1 :input').change(function(){ var $

因此,我使用jQuery的.change()函数触发对该特定表中其他字段的验证。请参阅下面的代码。。。。我遇到的问题是:如果我在输入字段中键入某个内容,然后将其删除,它仍然认为它已更改,并且需要其他字段。我可以看出这对用户来说是个问题,这有什么问题吗

p、 s.class=“R”来自我的自定义验证,使其成为必填字段

$('#t1 :input').change(function(){                                          

        var $t1Input = $('#t1Table :input:not(input[type=hidden])');
        var hasData = false;


   $t1Input.each(function(){
            if($(this).val().length > 0){
                hasDatat1 = true;
                return false;
            }
        });
        // Change class of input field to "R" if something has been changed 
            if(hasDatat1)
                $t1Input.addClass('R');                                                                  
            else
                $t1Input.removeClass('R');
        });

您可以使用此处概述的方法检测“真实”更改:

您可以使用此处概述的方法检测“真实”更改:

尝试以下操作:

$('#t1 :input').change(function(){
    if ($(this).val() == '') return;
试试这个:

$('#t1 :input').change(function(){
    if ($(this).val() == '') return;

您可以使用JQuery的
.data()
函数存储值并检查代码中的实际更改

如果我没有看错您的问题,您可以使用JQuery的
.data()
函数存储值并检查代码中的实际更改

,这将验证每个单独的输入,而不会在每次更改时验证表中的所有输入

$('#t1 :input:not(input[type=hidden])').change( function() {
    if( $(this).val() == '' )  { $(this).addClass('R'); }
    else { $(this).removeClass('R'); }
} );

我知道你没有问这个问题,但是你提到了“用户的问题”,所以我正在阅读你的问题。对于可用性,我不是说切换到Dojo而不是JQuery。事实上,我最终使用JQuery多于使用Dojo,因为它似乎有更多的追随者。但是,Dojo有一种非常好的方法来验证表单数据,并在不烦人的情况下向用户提供即时反馈。您可能想查看它,以了解如何为用户提供良好的UI流。

如果我没有看错您的问题,这将验证每个单独的输入,而不会在每次更改时验证表中的所有输入

$('#t1 :input:not(input[type=hidden])').change( function() {
    if( $(this).val() == '' )  { $(this).addClass('R'); }
    else { $(this).removeClass('R'); }
} );

我知道你没有问这个问题,但是你提到了“用户的问题”,所以我正在阅读你的问题。对于可用性,我不是说切换到Dojo而不是JQuery。事实上,我最终使用JQuery多于使用Dojo,因为它似乎有更多的追随者。但是,Dojo有一种非常好的方法来验证表单数据,并在不烦人的情况下向用户提供即时反馈。您可能想查看它,以了解如何为用户提供良好的UI流。

您想在每个字段发生变化时单独验证它,以便在他们键入有效字符串后,您可以给出该字段有效的一些指示?对吗?@Kevin,将弹出一个警报框进行验证,但所有这些都已经完成了。.change()似乎会在任何更改时触发,即使它被设置回其原始状态。i、 e.输入信息的文本框,然后用户删除该信息。您想在每个字段发生变化时单独验证它,以便在他们键入有效字符串后给出该字段有效的指示吗?对吗?@Kevin,将弹出一个警报框进行验证,但所有这些都已经完成了。.change()似乎会在任何更改时触发,即使它被设置回其原始状态。i、 e.输入信息的文本框,然后用户删除该信息。