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