等待jquery中的两个值发生了变化

时间:2012-05-10 13:44:05

标签: javascript jquery

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

$('#RFID').change(function(e){          

    if($(this).val() != '' && $('#STATION_ID').val() != ''){                

    }
});

3 个答案:

答案 0 :(得分:3)

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

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();
});

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

或许可以针对可以参与自动提交的每个字段添加一个类。

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

希望它有所帮助。

$('.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
} );