javascript - 如何处理 javascript 中输入元素状态的编程更改

标签 javascript jquery html dom

我遇到了奇怪的问题。虽然用户更改表单上的复选框输入元素会产生足够的事件,但编程更改不会。我该如何面对这个挑战?代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title></title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js"></script>
  <script type="text/javascript">
    jQuery(document).ready(
      function() {        
        jQuery("#cb").change(
          function() {
            alert("Changed!"); 
            return true;
          }
        );
        jQuery("#b").click(
          function() {
            var newState = !jQuery("#cb").attr('checked');
            jQuery("#cb").attr('checked', newState);
          });
      });
  </script>
</head>
<body>
  <form action="#">
    <p>
      <input type="button" id="b" />
      <input type="checkbox" id="cb" />
    </p>
  </form>
</body>
</html>

更新 我不控制元素变化,我只需要处理它们。这是我编写的通用代码。

最佳答案

使用触发函数触发复选框上的点击事件。您无需获取现有状态,因为只需单击即可切换复选框。

jQuery("#cb").trigger('click');

关于javascript - 如何处理 javascript 中输入元素状态的编程更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/400181/

相关文章:

javascript - jQuery 鼠标悬停鼠标悬停问题

javascript - Videojs 使 SWF 后备响应

html - 如何使 youtube 视频保持一致 (ul>li)?

javascript - 添加 jQuery 验证

javascript - 在 foreach 循环中中断 setTimeout 函数

javascript - HTML 复选框的状态无法在浏览器中呈现

html - 在 Disqus 2012 中更改字体大小

javascript - 从 Iframe 调用 javascript 到 aspx 页面

javascript - 如何在 Vuex 中存储非 react 性数据?

jquery - 对象不支持属性或方法 'autocomplete'