首页 > 解决方案 > jQuery 在控制台中工作正常,但在现场不起作用

问题描述

我试图根据是否选中复选框来禁用文本输入。编写所需的 jQuery 并在控制台中尝试后,结果非常完美。但是,当将其添加到站点页脚时,页面会加载,就好像 jQuery 尚未执行一样。

jQuery(document).ready(function() {

  jQuery('form input[name="custom_checkbox"]').attr('checked', false)
  jQuery('form input[name="company"]').prop("disabled", true);

  jQuery('form input[name="custom_checkbox"]').click(function() {

    if (jQuery(this).prop("checked") == true) {

      jQuery('form input[name="company"]').prop("disabled", false);

    } else if (jQuery(this).prop("checked") == false) {

      jQuery('form input[name="company"]').prop("disabled", true);

    }

  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>

  <input type="checkbox" name="custom_checkbox">
  <input type="text" name="company">
</form>

理想情况下,我希望取消选中复选框并在页面加载时禁用文本字段。然后,如果用户选中该框,则将启用文本字段。

当前页面加载时:

  1. 复选框未选中 + 文本字段已启用
  2. 如果我选中该框,则该字段保持启用状态
  3. 如果我然后取消选中该框,则该字段将启用

因此,在单击预期功能发生但加载时,默认值是错误的。

有人知道我在这里做错了什么吗?

标签: javascriptjqueryhtml

解决方案


推荐阅读