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