等到jQuery中的两个值发生更改

waiting until two values have changed in jquery

本文关键字:两个 jQuery 等到      更新时间:2023-09-26

我有两个表单字段,并且只有在两个字段都有值时才希望使用jquery发布这些值。我已经尝试过了,但一定有更好的方法。我认为这种方式可能会导致错误

$('#RFID').change(function(e){          
    if($(this).val() != '' && $('#STATION_ID').val() != ''){                
    }
});

这不是一个特别糟糕的方法。不过可以清理一下。 我会选择这样的东西:

var $fields = $('#RFID, #STATION_ID').change(function(e) {
    if ($fields[0].val() && $fields[1].val()) {
        // post it
    }
});


编辑:上面的代码假设您想在同时拥有两个值后立即发布。再看你的问题,我可能看错了。如果您只是想阻止表单发布,除非您同时具有这两个值,那么您确实需要这个:
$('form').submit(function(e) {
    if (!$fields[0].val() || !$fields[1].val()) e.preventDefault();
});

您可以在发布帖子之前进行相同的检查:

if ($.trim($('#RFID').val()) != '' && $.trim($('#STATION_ID').val()) != '') {
    // do post
}

可能会在所有可以生成表单自动提交的字段中分配一个更改处理程序。

也许为每个可以参与自动提交的字段添加一个类。

我知道更多的代码,但设置意图并在一个地方收集验证。

希望对您有所帮助。

$('.auto-submit').change(function(e) {
  // collect all the auto submit fields and make sure they are not empty
  for( field in $('.auto-submit') )
     if( field.val() == '' ) return;   // all fields not there
  }
  // do form submit here
} );