页面加载后jQuery调用bind

时间:2016-10-06 17:14:44

标签: jquery

我有一个带有两个输入的表单(后面有一个PHP脚本)

<select id="select1">
  <option>One</option>
  <option>Two</option>
</select>
<input type="text" id="text1" disabled="disabled" />

PHP脚本查看数据库并使用selected="selected"属性标记“One”或“Two”。

如果选择“一个”,我想激活禁用的文本字段。如果选择了任何其他条目(在此示例中为“Two”),则应禁用文本字段。我写了这个jQuery代码:

<script type = "text/javascript">
  $("#select1").bind('change paste keyup', function() {
    if (this.value == 'One') {
      $("#text1").prop('disabled', false);
    } else {
      $("#text1").prop('disabled', true);
    }
  });
</script>

我的问题: 当我访问该页面并预先选择“一个”时,文本字段被禁用。我必须再次选择“两个”和“一个”。在此之后,启用文本字段。我想检查页面加载选择了哪个项目。我尝试了很多触发这样的改变,但它没有运行:

$(window).bind("load", function() {
  $("#select1").trigger('change paste keyup');
});

我知道我可以使用.on.change这样的思考,但我想用.bind进行思考。

如何在页面加载时调用.bind

1 个答案:

答案 0 :(得分:4)

只需在pageload上触发事件

$("#select1").on('change', function() {
    $("#text1").prop('disabled', this.value !== 'One');
}).trigger('change');
  • bind已被on取代,不应使用
  • 一个选择不应该有任何关键事件,并且不能粘贴到?
  • 您可以直接使用条件来设置属性

FIDDLE