我有以下功能可以启用/禁用表单中的提交按钮。这三个单独工作都很好,但是如果可能的话如何将它们合并为一个?
现在,如果我选择一个选项和一个复选框,则该按钮将被启用,但如果我取消选择一个选项,则提交按钮将再次被禁用,但我想让他在选择一个复选框或选项或一个字段时启用已填写。
$('#order input[type="text"]').change(function(){
if(($(this).val().length > 0))
$('#submit').prop('disabled', false);
else
$('#submit').prop('disabled', true);
});
$('#order :checkbox').change(function(){
if($(this).not('.others').is(':checked'))
$('#submit').prop('disabled', false);
else
$('#submit').prop('disabled',true);
});
$('#order select').not('#sel_option_img').change(function(){
if($(this).val() != '')
$('#submit').prop('disabled', false);
else
$('#submit').prop('disabled',true);
});
});
抱歉我的英语可能不够完美。
预先感谢您的帮助。
编辑
链接到 fiddle 以便更好地理解:
最佳答案
试试这个:
var orderText = $('#order input[type="text"]');
var orderCheck = $('#order :checkbox');
var orderSelect = $('#order select').not('#sel_option_img');
var enableOrDisableSubmit = function() {
var textEntered = orderText.val().length > 0;
var orderChecked = orderCheck.not('.others').is(':checked');
var orderSelected = orderSelect.val() != '';
if (textEntered && orderChecked && orderSelected)
$('#submit').prop('disabled', false);
else
$('#submit').prop('disabled', true);
};
orderText.change(enableOrDisableSubmit);
orderCheck.change(enableOrDisableSubmit);
orderSelect.change(enableOrDisableSubmit);
请注意,我们将 jQuery 引用分配给变量,这样我们就可以多次使用它们,而不必每次都遍历 DOM。
关于javascript - 将复选框/选择和输入的控制功能合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24895880/