0

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

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

disabled 属性永远不会被删除,也就是说,它不起作用。

4

1 回答 1

1

jsFiddle 演示在这里

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

更改任何选择框时,检查它是否具有该类。如果是这样,则从 Select 按钮中删除 disabled 属性。

示例代码:

$('#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
于 2013-10-08T17:05:10.973 回答