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

时间:2012-03-16 17:10:45

标签: javascript events onchange

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

4 个答案:

答案 0 :(得分:1)

changed()http://jsfiddle.net/BFz2a/11/

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

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

答案 1 :(得分:1)

答案很简单

function change(){
   var el = document.getElementById('myId');
   el.value = 'Hello';
   el.onchange(); // or simply call changed();
}
javascript: onclick内只需要{p>和onchange,而onClick = "change();"只需使用

{{1}}

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

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

小提琴是here