4

我想实现这样的目标。我有 4 个文本字段和一个表单提交所需的选择字段。我想让按钮保持禁用状态,除非文本字段有值并且从下拉列表中选择了一个选项。我的代码在这里

我遇到的问题是,每当我在 4 个文本字段中输入数据时,尽管将下拉菜单选择为默认文本,但按钮就会启用。在我更改下拉列表后,它被永久禁用。

4

3 回答 3

13

试试这个 -演示

$('#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);
    }   
}
于 2012-08-14T17:05:41.077 回答
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");
}
于 2012-08-14T17:09:09.397 回答
0

我想你可以数出有多少输入有文本

$('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});
    }
});
于 2012-08-14T17:20:01.467 回答