javascript - 使用 jquery 禁用表单提交按钮 input=text 和 input=checkbox

标签 javascript jquery checkbox text input

我有一个包含三个输入的表单([type=text]、多个输入[type=checkbox] 和一个禁用的提交按钮)。 如果用户填写了所有三个文本输入并且至少选择了一个复选框,我希望启用提交按钮。

我发现这个 fiddle 在所有三个文本输入上都很有效,但我想添加一个附加条件,即必须选择至少一个复选框:

$(document).ready(function() {
    var $submit = $("input[type=submit]"),
    $inputs = $('input[type=text], input[type=password]');

    function checkEmpty() {
        // filter over the empty inputs
        return $inputs.filter(function() {
            return !$.trim(this.value);
        }).length === 0;
    }

    $inputs.on('blur', function() {
        $submit.prop("disabled", !checkEmpty());
    }).blur(); // trigger an initial blur
});

fiddle

最佳答案

在复选框中添加 class="checkbox",然后将 checkEmpty() 修改为:

function checkEmpty() {
    var text= $inputs.filter(function() {
        return !$.trim(this.value);
    }).length === 0;
    var checkbox = false;
    if ($(".checkbox:checked").length > 0) {
       checkbox = true;
    }
    if(text == true && checkbox == true){
        return true;
    }else{
        return false;
    }
}

然后为复选框添加点击事件:

$(".checkbox").on("click", function(){
    $submit.prop("disabled", !checkEmpty());
});

关于javascript - 使用 jquery 禁用表单提交按钮 input=text 和 input=checkbox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38409906/

相关文章:

javascript - 如何获取IE中sIFR嵌入标签的点击事件?

jquery - 使用 jQuery 创建新元素

javascript - jQuery 到纯 JavaScript

jquery - 我可以使用 jQuery( ) 作为构造函数吗?

javascript - 使用 Angular 将 json 对象中的通用文本字符串转换为有效的 url

javascript - ESLint : Spacing around equal sign

javascript - Angular 自定义复选框指令在 ng-repeat 中不起作用

javascript - AngularJS - 多级复选框问题

javascript - 为什么 `1vh` CSS 大小解析为屏幕上不同的像素大小

javascript - 使用 jquery 获取具有多个复选框的复选框值之一