【问题标题】:Triggering events on input elements using javascript使用 javascript 在输入元素上触发事件
【发布时间】:2012-03-16 17:10:45
【问题描述】:

我想在输入元素的值使用 javascript 时触发一个事件。输入元素的值是使用脚本更改的,并且没有键入。我知道 onChange 事件不会在值更改后触发,但是在更改值并且元素失去焦点之后(在元素外部单击鼠标。)..这里输入元素没有失去焦点。所以onChange事件不会触发。那么如何做到这一点.. 以下是脚本,一旦我尝试并失败了

<html>
 <head>
       <script type = 'text/javascript'>
                function changed()
                {
                          alert('changed');
                }
                function change()
                {
                       document.getElementById('myId').value = 'Hello';
                }


       </script>
 </head>
 <body>
    <input type = 'text'  id = 'myId' onChange= 'javascript:changed();'/>
    <input type ='button'  value = 'change'  onClick = 'javascript:change();'/>
 </body>

我的意思是,当使用函数 change() 更改文本框内的内容时,应该调用函数 changed()。如何做到这一点。 这是代码http://jsfiddle.net/BFz2a/的jsfiddle@

【问题讨论】:

  • 删除了 2x javascript :P
  • “,javascript:在内联事件处理程序中已过时”是什么意思?也请将此作为您的答案并附上一些解释
  • 如果输入元素的值被脚本改变了,那就可以触发事件了……

标签: javascript events onchange


【解决方案1】:

change()之后调用changed()http://jsfiddle.net/BFz2a/11/

function change() {
    document.getElementById('myId').value = 'Hello';
    changed(); // Calls the other function
}

事件侦听器 (onchange=" this is inside ") 中的内容被解析为 JavaScript。因此,javascript:已过时。实际上,它被视为label
javascript:... 前缀仅在链接中有意义,例如&lt;a href="javascript:alert('test');"&gt;Test&lt;/a&gt;

【讨论】:

  • 它不起作用...当使用按钮更改文本内的内容时,我需要获取警报消息..
  • @JinuJD 请参阅我的答案顶部的行。
【解决方案2】:

答案很简单

function change(){
   var el = document.getElementById('myId');
   el.value = 'Hello';
   el.onchange(); // or simply call changed();
}

onclickonchange 中不需要javascript:,只需使用

onClick = "change();"

【讨论】:

    【解决方案3】:

    在处理点击事件的函数中,您可以手动调用 Input 的 onchange 事件。

    function change()
    {
        var inputEl = document.getElementById("myId");
        inputEl.value = 'Hello';
        inputEl.onchange();
    }
    

    【讨论】:

      【解决方案4】:
      function change(){
          var el=document.getElementById('myId');
          el.value="Something";
          changed(el);
      }
      function changed(el){
          alert(el.value);
      }
      change();
      

      小提琴是here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-13
        • 2011-10-29
        • 2021-10-08
        • 1970-01-01
        • 2019-05-28
        • 1970-01-01
        • 1970-01-01
        • 2019-08-11
        相关资源
        最近更新 更多