2013-09-16 27 views
0

我正在學習JavaScript,並且正在處理待辦事項列表類型的應用程序。JavaScript:如何檢測非空輸入文本框

想法:「添加」按鈕在HTML中被設置爲禁用,並且只有在至少有一個字符時才被啓用。

我的代碼只有在至少有2個字符時才起作用,並且無法檢測爲什麼它沒有檢測到第一個字符。

另一個真正的問題是如何將「添加」按鈕設置爲禁用,如果輸入框內容已被刪除。

HTML

<input id="addToListInput" onkeydown="buttonStatus()" value="" type="text"><input id="addToListButton" disabled type="submit" Value="Add to list" onClick="addToList(this)"> 

JS

function buttonStatus() { 
     var input = document.getElementById('addToListInput'); 
     var submit= document.getElementById('addToListButton'); 
     if (input.value.trim() ==""){ 
      submit.disabled=true; 
     }else{ 
      submit.disabled=false; 
     } 
    } 
+0

我認爲'trim'函數是由你定義的? –

+0

另外,爲什麼你不試試jQuerys'$ .trim()'http://api.jquery.com/jQuery.trim/,看看你是否得到相同的結果 –

+1

@ClydeLobo - 修剪是現在的JavaScript的一部分,雖然不是在舊版瀏覽器支持 - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim – DoctorMick

回答

4

使用keyup代替。通過使用​​你檢測的時候,關鍵是下降,但文本框的值並沒有在這一點改變......

<input id="addToListInput" onkeyup="buttonStatus()" value="" type="text"> 
1

onkeydown事件被觸發之前輸入的控制實際上是解僱,如果你使用的onkeyup它應該工作如你所料。