2013-08-20 20 views
0

我想要檢測何時有人沒有在值輸入中輸入任何內容並點擊提交。當我將案例設置爲兩個引號時,它不起作用(顯示的默認情況:「lol」)。如果我使用兩個帶有空格的引號,則必須在輸入框中輸入一個空格,然後點擊提交以查看「請輸入您的RSVP代碼」。如何檢測開關盒的空輸入值?

function myFunction(){ 

     var pincode = document.getElementById("pincode").value; 

     switch (pincode){ 

      case "77642" : 
       window.location.assign("http://wherever.com"); 
       break; 

      case "" : 
       document.getElementById("error").innerHTML = "Please enter your RSVP code."; 
       break; 

      default : 
       document.getElementById("error").innerHTML = "lol"; 
       break; 

      } 
     } 

看起來像一個簡單的東西我失蹤,但我一直沒能找到答案。謝謝!

+1

你爲什麼不只是找出值是在這種情況下,什麼樣的輸出它和它的類型?如果您有輸入,則 –

+1

會進入開關。如果沒有給出任何輸入,請在else塊中定義您的操作。 – palerdot

+0

似乎正常工作:[Option empty string value](http://jsfiddle.net/GuLkf/) - [Option no value](http://jsfiddle.net/GuLkf/1/)。你的dom是什麼樣子的? – smerny

回答

0

添加的,如果交換機之前語句來驗證輸入:

function myFunction(){ 

    var pincode = document.getElementById("pincode").value; 

    if(pincode.trim() == "") { // note the trim for eliminating empty spaces 
     document.getElementById("error").innerHTML = "Please enter your RSVP code."; 
     return; 
    } 

    switch(pincode) { 
     ... 
    } 
} 
+0

正如旁註:trim可能不會出現在所有瀏覽器中,因爲它是Javascript的一個相當晚的添加(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/字符串/修剪)。一個簡單的替換就是'pincode.replace(/^\ s *(。*?)\ s */g,'')'。 –

+0

@IngoBürk很高興知道。我在修剪時沒有遇到任何問題,但如果它發生了,現在我知道會發生什麼。 – armandocj