javascript - 如果选中复选框则禁用输入

标签 javascript jquery html forms checkbox

我有一张购票表格。您必须在那里填写所有个人信息。 也可以购买一张空票,上面没有任何名字。只需单击复选框即可禁用所有输入字段。 var inputDisabled = 0;

    $("#three").change(function(){

       if(inputsDisabled == 0){

           $("input[name=fname]").attr("disabled", true);
           $("input[name=lname]").attr("disabled", true);
           $("input[name=email]").attr("disabled", true);
           $("input[name=sponsor]").attr("disabled", true);
           $("input[name=phone]").attr("disabled", true);

           inputsDisabled = 1;
       }
       else{

           $("input[name=fname]").attr("disabled", false);
           $("input[name=lname]").attr("disabled", false);
           $("input[name=email]").attr("disabled", false);
           $("input[name=sponsor]").attr("disabled", false);
           $("input[name=phone]").attr("disabled", false);

           inputsDisabled = 0;
       }
    });

当有人购买空票并按下“后退”浏览器按钮时,他会返回到此表单。提到的复选框仍会自动选中,但字段不再禁用。我尝试使用下面的代码,但没有帮助。

if ("#three".checked) {
            $("input[name=fname]").attr("disabled", true);
            $("input[name=lname]").attr("disabled", true);
            $("input[name=email]").attr("disabled", true);
            $("input[name=sponsor]").attr("disabled", true);
            $("input[name=phone]").attr("disabled", true);
        }

有没有更好的方法来做到这一点?

最佳答案

您应该使用 .is(":checked").prop("checked") 并且因为 checked 是一个属性使用 prop() 代替 attr()

$("input[name=fname], input[name=lname], input[name=email], input[name=sponsor], input[name=phone]")
     .prop("disabled", $("#three").is(":checked"));

关于javascript - 如果选中复选框则禁用输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39640058/

相关文章:

javascript - jQuery在php echo中动画div

javascript - 通过 JSON 传递给 JavaScript 之前在哪里声明 PHP?

相当于 php call_user_func 的 javascript

javascript - 如何在 history.js 中使用正斜杠而不是哈希 (#)?

javascript - 如何使 Material UI 模态和对话框可滚动?

javascript - 将局部变量传递到另一个 View 的 JS - Rails

jquery 循环插件不旋转图像

javascript - session 中的 jQuery 计时器倒计时

javascript - 为什么即使我将类型设置为按钮(而不是提交),按钮也会提交表单?

javascript - KineticJS setScale/Zoom 问题 - 随机线