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

时间:2013-10-08 16:51:17

标签: jquery attr conditional-statements submit-button javascript

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

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

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

1 个答案:

答案 0 :(得分:1)

<强> jsFiddle Demo here

你必须测试的三个选项每个都有一个类(类似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