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