表格中有四个下拉列表。一个是可选的。在其他三个中,至少必须选择一个。我有一个脚本,我正在使用一个字段的表单上,禁用提交,直到做出选择。但我无法弄清楚并且无法找到如何使其适应被禁用,直到三个特定下拉列表中的至少一个进行了选择。这是当前的脚本:
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');
}
})()
禁用属性永远不会被删除,即它不起作用。
答案 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