【问题标题】:disabled attribute on input makes it "forget" onclick event输入上的 disabled 属性使其“忘记” onclick 事件
【发布时间】:2015-12-05 19:48:30
【问题描述】:

我得到了这个 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

【问题讨论】:

    标签: javascript jquery html events javascript-events


    【解决方案1】:

    由于你被标记为 jQuery,最好在 jQuery 中使用 change() 事件处理程序

    $('#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】:

      您显示的代码运行良好。

      您确定您的MainFunction 没有问题吗?只需使用您的代码并添加一个 MainFunction 即可,只需 alerts 输入就可以正常工作并且不会引发错误,如下面的 sn-p 所示。

      另外,您不想在“您确定吗?”时单击提交按钮复选框被选中?为此,我已将其更改为 !$("#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】:

        尝试做这样的事情:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-01-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-10-23
          • 2016-10-29
          • 1970-01-01
          相关资源
          最近更新 更多