我想实现这样的目标。 我有4个文本字段和一个选择字段,表单提交所需。我想保持按钮被禁用,除非文本字段有值并且从下拉列表中选择了一个选项。我的代码是here
我遇到的问题是每当我在4个文本字段中输入数据时,虽然下拉列表被选中为默认文本,但按钮被启用。更改下拉列表后,它将永久禁用。
答案 0 :(得分:14)
试试这个 - DEMO
$('#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);
}
}
答案 1 :(得分:1)
使用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");
}
答案 2 :(得分:0)
我认为您可以计算有多少输入文本
$('input').keyup(function(){
var count = $('input:text').filter(function(){return $(this).val() == "";}).size();
});
但是,由于您使用的是select标签,我认为您应该检查它是否有值。
$('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});
}
});