繁体   English   中英

使用javascript触发输入元素上的事件

[英]Triggering events on input elements using javascript

我想使用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

呼叫changed()change() http://jsfiddle.net/BFz2a/11/

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

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

答案很简单

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

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

onClick = "change();"

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

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

小提琴在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM