2012-10-12 29 views
0

我有一個文本框,當文本改變時我想要一個警報,但現在問題是,當我編寫11時,它顯示兩次警報。如何在輸入欄中輸入文字時在html頁面中顯示警報

function onChangeText(){ 

     alert("Please show update buttons"); 

    } 
+0

的意思是我想在輸入字段中輸入1,則它示出了警報一次,但如果我安特11則示出了警報2倍我想只顯示其一個時間時值是輸入 –

回答

1

你可以試試這個:My Fiddle

<input type="text" onchange="alert('Hello');">​ 
+0

,但在這裏它顯示警報,當我輸入數據後點擊網頁,我希望當數據輸入後,它應該顯示警報不在點擊頁面 –

+0

@ user1736928這是因爲它發出警報時,它關注輸入它只會在文本在輸入字段 –

+0

@ user1736928中發生變化時發出警報,所以你的需求是什麼......你什麼時候需要消息...或者是onchange,onbl你或onchangetext,但是當你離開對象而不必改變它的值時,onBlur事件被觸發。 onChange事件僅在您更改字段的值時纔會調用。 – Kasma

0

嘗試安其向上的,而不是平變化

<input type="text" onkeyup="onChangeText()" /> 
+0

但這樣它也顯示兩次你輸入11 –

+0

我找不到你的兩次11案 – polin

0

你可以叫你的JavaScript onblur,而不是像onchange

<input type="text" onblur="onChangeText();">​ 
0

試試這個:

<input type="text" onblur="if(this.value != '') onChangeText();">​ 
0

另一種方法是創建全局超時變量,綁定監聽器input事件。回調函數將重置timeout並檢查前一個事件是否在指定的時間之前發生過(例如500毫秒)。

正如您可能已經注意到的,在點擊其他元素後執行onchange的示例。這是更改事件的默認行爲。 輸入表現不同。

實施例:http://jsfiddle.net/Klaster_1/3byVb/

var timeout; 
$("input").on("input", function(event) { 
    var value = event.target.value; 

    clearTimeout(timeout); 
    timeout=setTimeout(function(){ 
     if(value.length){ 
      alert(value); 
     } 
    },500); 
});​ 
相關問題