如果三个特定下拉字段中的所有三个都为空,请禁用提交按钮

表格中有四个下拉菜单。 一个是可选的。 在其他三个中,必须至少选择一个。 我有一个脚本,我正在一个带有一个字段的表单上使用,禁用提交,直到做出选择。 但我无法弄清楚并且无法找到如何使其适应被禁用,直到三个特定下拉列表中的至少一个进行了选择。 这是当前的脚本:

jQuery(function($) { $('#ssbbcmodal-attribute').change(function() { var empty = false; $('#ssbbcmodal-attribute').each(function() { if ($(this).val() == null) { empty = true; } }); if (empty) { $('#ssbbcmodal-submit').attr('disabled', 'disabled'); } else { $('#ssbbcmodal-submit').removeAttr('disabled'); } }); })() 

更新1

我可能想过一种方法来做到这一点。 将很快回来更新。

更新2

好吧,我这样做的方法不起作用,可能是因为我猜这个。 这是我尝试过的:

 jQuery(function($) { var empty = false; $('#sseomodal-level').change(function() { var levelempty = false; $('#sseomodal-level').each(function() { if ($(this).val() == null) { levelempty = true; } }); }); $('#sseomodal-username').change(function() { var userempty = false; $('#sseomodal-username').each(function() { if ($(this).val() == null) { userempty = true; } }); }); $('#sseomodal-logged').change(function() { var loggedempty = false; $('#sseomodal-logged').each(function() { if ($(this).val() == null) { loggedempty = true; } }); }); if (levelempty === true && userempty === true && loggedempty === true) {empty = false} if (empty) { $('#sseomodal-submit').attr('disabled', 'disabled'); } else { $('#sseomodal-submit').removeAttr('disabled'); } })() 

禁用属性永远不会被删除,即它不起作用。

这里有jsFiddle演示

您必须测试的三个选项可以每个都有一个类(类似require_one )。

更改任何选择框时,请检查它是否具有该类。 如果是,则从“选择”按钮中删除已禁用的属性。

示例代码:

 $('#mySubmit').attr('disabled','disabled'); $('select').change(function(){ if ( $(this).hasClass('require_one') ){ $('#mySubmit').removeAttr('disabled'); } }); 

对于您自己的代码,尝试将其减少到这个并查看它是否有效:

 $(document).ready(function() { $('#sseomodal-submit').attr('disabled', 'disabled'); $('[id^=sseomodal]').change(function() { var myId = $(this).attr('id'); if (myId == 'sseomodal-level' || myId == 'sseomodal-username' || myId == 'sseomodal-logged') { $('#sseomodal-submit').removeAttr('disabled'); } }); }); // END document.ready