【问题标题】:Checkboxes with "return false" and back带有“return false”并返回的复选框
【发布时间】:2015-04-09 15:21:03
【问题描述】:

我想创建一个带有复选框的表单。起初它不应该检查它们。然后,如果您单击提交,它们应该是。

我让它工作了,所以它不能先点击

function(e){ e.preventDefault(); }

但是在那之后我如何让它们再次可点击?

【问题讨论】:

    标签: checkbox preventdefault clickable


    【解决方案1】:

    这意味着您只想采用第一次删除的默认行为。为此,您只需要这样做

    function(e){ return true; }
    

    希望这项工作。

    【讨论】:

    • 是的,它应该再次默认。不幸的是,返回 true 它对我不起作用
    • 然后使用解除绑定功能检查
    【解决方案2】:

    最简单的方法是禁用该复选框,然后在您准备好时重新启用它:

    <input id="chk1" type="checkbox" disabled>
    
    document.getElementById("chk1").removeAttribute("disabled");
    

    如果你使用 jQuery,使用多个复选框会更容易,语法如下:

    jQuery("#chk1").prop("disabled", false);
    

    【讨论】:

    • 这会起作用,但它看起来仍应与启用的复选框相同
    • 从用户的角度来看,这样只会惹恼用户。但如果这是您的要求,我会发布另一个替代方案。
    【解决方案3】:

    如果您将点击处理程序设置为一个函数,只需让该函数阻止点击,具体取决于您是否要启用这些框。在您的情况下,您说单击提交按钮时,您想开始允许它们:

    var _checkBoxesEnabled = false;
    
    function checkBoxClicked(e) {
        if (!_checkBoxesEnabled) {
            e.preventDefault();
        }
    }
    
    function submitButtonClicked() {
        _checkBoxesEnabled = true;
    }
    

    注意跨浏览器兼容性 - 我被 jQuery 宠坏了,所以我不记得点击处理程序中的 e 是如何与使用常规 javascript 的旧 IE 版本一起工作的。

    【讨论】:

      猜你喜欢
      • 2016-03-19
      • 1970-01-01
      • 2021-08-24
      • 1970-01-01
      • 1970-01-01
      • 2019-03-13
      • 1970-01-01
      相关资源
      最近更新 更多