我想实现这样的目标。我有 4 个文本字段和一个表单提交所需的选择字段。我想让按钮保持禁用状态,除非文本字段有值并且从下拉列表中选择了一个选项。我的代码在这里
我遇到的问题是,每当我在 4 个文本字段中输入数据时,尽管将下拉菜单选择为默认文本,但按钮就会启用。在我更改下拉列表后,它被永久禁用。
试试这个 -演示
$('#fname, #lname, #zipcode').on("keyup", action);
$('#location').on("change", action);
function action() {
if( $('#fname').val().length > 0 && $('#lname').val().length > 0 && $('#zipcode').val().length > 0 && $('#location').val() != '' ) {
$('#submit').prop("disabled", false);
} else {
$('#submit').prop("disabled", true);
}
}
使用 JQuery:
var text_valid = false, dropdown_valid = false;
$("input[type='text'].required:focus").each(function() {
if($(this).val().length > 0){
text_valid = true
}
}
if($("#mydropdown option:selected").length){
dropdown_valid = true;
}
if(text_valid && dropdown_valid) {// Our form is valid
$("#mybutton").removeAttr("disabled");
}
else { // Our form is invalid
$("#mybutton").attr("disabled", "disabled");
}
我想你可以数出有多少输入有文本
$('input').keyup(function(){
var count = $('input:text').filter(function(){return $(this).val() == "";}).size();
});
但是,由于您使用的是选择标签,我认为您还应该检查它是否具有值。
$('input').keyup(function(){
var count = $('input:text').filter(function(){return $(this).val() == "";}).size()
+ $('select:text').filter(function(){return $(this).val() == "";}).size();
if(count > 0){
$('#submit').button({disabled: true});
}else{
$('#submit').button({disabled: false});
}
});