2012-04-30 3 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> 

CALC 기능

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

어리석은 질문이지만 이것을 calc 함수에 삽입 하시겠습니까? js에 익숙하지 않은 사람. –

+0

예, calc 함수에 추가 할 수 있습니다. 편집 된 코드 참조 –

+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-can- i-do- 대신). - [리뷰에서] (리뷰/저품절 포스트/11970127) – Maria

+0

명성이 나쁘다는 것을 의미하지 않습니다. 나는 단지 내 일을 한 줄을 썼다. – kaustubh

0

이 간단한

if(val1.match(/^\d+$/)) { 
    // your code 
} 
관련 문제