2014-04-07 44 views
0

我想檢查INPUT值是否是一個數字,如果不是,應該清除該字段。如果不是數字,下面的腳本總是給出警報,但從不清除輸入。任何人都知道我做錯了什麼?如何檢查數值後清空輸入?

<script> 
    function numeric(input) 
    { 
     if(isNaN(input)) 
     { 
      alert("Is not a numeric value"); 
      input.value=""; 
     } 
    } 
</script> 

<input type="number" value="" name="<?php echo $x; ?>" onblur="return numeric(value)"/> 
+0

小錯誤。我認爲懶惰是發生錯誤的關鍵因素(根本不是玩笑),所以我把這個問題當作一個錯字,只是一個小小的監督證明 - 閱讀有問題的代碼(請參閱非jQuery答案)。 – hakre

回答

1

使用此

$("#numerictext").keyup(function() { 

var numberRegex = /^[+-]?\d+(\.\d+)?([eE][+-]?\d+)?$/; 
var str = $('#numerictext').val(); 

if(!numberRegex.test(str)) { 
    alert("Is not a numeric value"); 
    $('#numerictext').val('') 
} 

}); 

    <input type="number" id="numerictext" value="" name="<?php echo $x; ?>"/> 
+0

我很確定他想要直接的javascript(沒有jQuery) –

+0

@MattEno如果給出了否定的話讓我告訴你這個答案沒有錯,讓他決定選擇什麼 –

+0

好的答案和是的讓我們決定選擇什麼: ) –

1

你傳遞價值給你的函數,然後試圖通過指的它的價值,以清除輸入。請嘗試:

<script> 
    function numeric(input) 
    { 
     if(isNaN(input.value)) 
     { 
      alert("Is not a numeric value"); 
      input.value=""; 
     } 
    } 
</script> 

<input type="number" value="" name="<?php echo $x; ?>" onblur="return numeric(this)"/> 
+0

謝謝,它現在可行! – Nicolas123