2012-04-30 35 views
2

我有一個簡單的表單,它在按下數字時執行計算,但是隻有在鍵入數字時纔會發生,如果添加了一個字母,我希望收到通知出現。有一個簡單的功能來做到這一點?檢查字符串是否只包含數字,否則顯示消息

形式

<input onKeyPress="return onlyNumbers()" onKeyUp="calc()" id="value1" type="text" name="value1"> 
    <select onChange="calc()" id="manipulator" name="manipulator"> 
     <option value="commission">Commission</option> 
     <option value="cost">Return</option> 
    </select> 
</form> 

計算功能

function calc(){ 
    if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
    } else {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    val1 = document.getElementById("value1").value; 
    mani = document.getElementById("manipulator").value; 

    if (val1 != ""){ 
     document.getElementById("resp").innerHTML="Calculating..."; 
     queryPath = "comCalcServ.php?value1="+val1+"&manipulator="+mani; 

     xmlhttp.onreadystatechange=function(){ 
      if (xmlhttp.readyState==4 && xmlhttp.status==200){ 
       document.getElementById("resp").innerHTML=xmlhttp.responseText; 
      } 
     } 

     xmlhttp.open("GET",queryPath); 
     xmlhttp.send(); 
    } 
} 

我目前看isNaN功能,但不熟悉的JS語法,因此無法確定在何處使用它。

+1

您是否嘗試過的東西?像使用parseFloat或檢查每個字符看看它們是什麼? –

回答

4

你的意思是:


//add inside your calc function 
val1 = document.getElementById("value1").value; 
if(/^\d+$/.test(val1)) { 
//proceed with rest of code 
} 
else { 
alert("Invalid"); 
return false; 
} 

+0

愚蠢的問題,但會插入到計算功能?我不熟悉JS。 –

+0

是的,您可以將它添加到您的計算功能中,請參閱編輯代碼 –

+0

非常感謝。 –

-1

上面的代碼中並沒有我的情況下工作。所以我做了一些改變。 我剛剛改變了正則表達式爲/^[0-9]*$/.test(val1),它工作。

+0

這不提供問題的答案。一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你將能夠[評論任何職位](http://stackoverflow.com/help/privileges/comment);相反,[提供不需要提問者澄清的答案](http://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [來自評論](/評論/低質量/職位/ 11970127) – Maria

+0

沒有足夠的聲譽並不意味着我錯了。我只寫了做我的工作的線 – kaustubh

0

試試這個簡單的一個

if(val1.match(/^\d+$/)) { 
    // your code 
} 
相關問題