Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 等待jquery中的两个值发生更改_Javascript_Jquery - Fatal编程技术网

Javascript 等待jquery中的两个值发生更改

Javascript 等待jquery中的两个值发生更改,javascript,jquery,Javascript,Jquery,我有两个表单字段,只想在两者都有值时使用jquery发布这些值。我已经试过了,但一定有更好的办法。我认为这种方式可能会导致错误 $('#RFID').change(function(e){ if($(this).val() != '' && $('#STATION_ID').val() != ''){ } }); 这不是一个特别糟糕的方法。不过可以稍微清理一下。我会这样说: var $fields = $(

我有两个表单字段,只想在两者都有值时使用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();
});

这不是一个特别糟糕的方法。不过可以稍微清理一下。我会这样说:

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
}

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

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

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

可能会针对每个可以参与自动提交的字段添加一个类

我知道的代码很少,但设置了意图并在一个地方收集了验证

希望能有帮助

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

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

可能会针对每个可以参与自动提交的字段添加一个类

我知道的代码很少,但设置了意图并在一个地方收集了验证

希望能有帮助

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

又好又简单。尽管我一直认为用jQuery测试字段长度是最好的做法,比如
if($fields[0].val().length>0)
:)如果您愿意,可以这样做,但是
.val()
总是返回一个字符串,因此如果存在值,则在所有情况下都是“真实的”。我会尝试在两个值都已填写完毕后立即发布表单值,这样第一个代码段就是您想要的。只需执行类似于
$(this)的操作。最近的('form')。submit()
,其中显示
//post it
。您可以从声明它的行中调用$fields吗?我得到了一个好的和简单的错误。尽管我一直认为用jQuery测试字段长度是最好的做法,比如
if($fields[0].val().length>0)
:)如果您愿意,可以这样做,但是
.val()
总是返回一个字符串,因此如果存在值,则在所有情况下都是“真实的”。我会尝试在两个值都已填写完毕后立即发布表单值,这样第一个代码段就是您想要的。只需执行类似于
$(this)的操作。最近的('form')。submit()
,其中显示
//post it
。您可以从声明它的行中调用$fields吗?我有个错误