2012-03-16 54 views
0

我想觸發事件母雞使用javascript輸入元素的值。輸入元素的值是使用腳本更改,而不是typed.I知道onChange事件觸發不值改變後,但值改變後,元素失去焦點(鼠標點擊元素外)。這裏的輸入元素不會鬆散focus.So onChange事件將不會激發。所以如何做到這一點.. 以下是腳本,有一次我嘗試和失敗使用javascript在輸入元素上觸發事件

<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()後的代碼http://jsfiddle.net/BFz2a/

+0

刪除了2個javascript:P – 2012-03-16 17:13:53

+0

你是什麼意思「,javascript:在內聯事件處理程序中是過時的」? 另請發佈此作爲你的答案和一些解釋 – 2012-03-16 17:15:59

+0

如果輸入元素的值更改使用腳本,這就是當你可以觸發事件... – 2012-03-16 17:18:01

回答

1

呼叫changed()的的jsfiddle: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:...前綴僅在鏈接中有意義,例如<a href="javascript:alert('test');">Test</a>

+0

它不工作...我需要獲取警報消息時使用按鈕更改文本內的內容.. – 2012-03-16 17:19:17

+1

@JinuJD請參閱我答案頂部的一行。 – 2012-03-16 17:20:28

1

答案很簡單

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

並且不需要內部onclickonchangejavascript:簡單地使用

onClick = "change();"

1

在你的函數處理click事件,你可以手動調用onchange事件爲輸入。

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

小提琴是here

相關問題