代码之家  ›  专栏  ›  技术社区  ›  Gntem

输入上的禁用属性使其“忘记”onclick事件

  •  -1
  • Gntem  · 技术社区  · 10 年前

    我有这个JS/HTML

    <div>
        Are you sure ? <input type="checkbox" id="Confirm" onClick="doCheck();"/>
    </div>
    
    <input value="3" id="SubmitT" type="button" onClick="MainFunction(34);" disabled>
    

    #编辑:打字错误代码

    function doCheck(){
        $("#SubmitT").prop('disabled',$("#Confirm").is(":checked"));
    }
    

    我希望它做的是设置/取消设置禁用属性和 MainFunction(34) 是否基于残疾人的存在而开火。 它所做的是,当我切换复选框输入时,它会忘记绑定到onclick的事件,不断抛出错误 MainFunction 未知。

    jQuery的版本为1.11.1

    3 回复  |  直到 4 年前
        1
  •  3
  •   Pranav C Balan Ansh Takalkar    10 年前

    由于您被标记为jQuery,因此最好使用 change() jQuery中的事件处理程序

    $('#Confirm').change(function() {
      $("#SubmitT").prop('disabled', !this.checked);
    })
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <div>
      Are you sure ?
      <input type="checkbox" id="Confirm"/>
    </div>
    
    <input value="3" id="SubmitT" type="button" onClick="MainFunction(34);" disabled>
        2
  •  2
  •   Andrew Mairose    10 年前

    您显示的代码工作正常。

    你确定你的 MainFunction ? 只需使用代码并添加 主功能 这很简单 alert s输入工作得很好,没有抛出任何错误,如下面的代码段所示。

    此外,当“确定吗?”复选框是否选中?为此,我已将其更改为 !$("#Confirm").is(":checked") .

    function doCheck() {
      $("#SubmitT").prop('disabled', !$("#Confirm").is(":checked"));
    }
    
    function MainFunction(input) {
      alert(input);
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div>
      Are you sure ?
      <input type="checkbox" id="Confirm" onClick="doCheck();" />
    </div>
    
    <input value="3" id="SubmitT" type="button" onClick="MainFunction(34);" disabled>
        3
  •  0
  •   Ol' Reliable    10 年前

    尝试这样做:

    document.getElementById('SubmitT').disabled = true;

    因此,就像您通过js..(在页面加载时执行该命令)将其设置为禁用,并使用 MainFunction() 控制禁用的属性。