2012-04-30 3 views
0

내가 자바 스크립트에 새로운 오전과 다음과 같은 오류 메시지가 무엇을 의미하는지 궁금 :자바 스크립트 추가 오류 메시지

안녕하세요 _ _ NaN의

NaN이 무엇을 의미합니까? 내가 급여와 requiredamount를 추가하고 또한 이름이 대화 상자에 표시하려고 노력하고

<script type="text/javascript"> 
function validateForm() 
{ 
var x=document.forms["myForm"]["name"].value; 
if (x==null || x=="") 
    { 
    alert("What Is Your Name?"); 
    return false; 
    } 
} 


function addNos(){ 
    var a, b, res; 
    a= parseFloat(document.myForm.salary.value); 
    b= parseFloat(document.myForm.requiredamount.value); 
    res = a+b; 
    window.alert("Hello" + a + b); 
} 

</script> 

    <form name="myForm" action="" onsubmit="return validateForm()" method="post"> 


<label>Your Name</label> <br /><br /><input name="name" type="text" /> 

<br /><br /> 
<label>Your Salary</label><br /><br /> 
<select name="salary"> 
    <option value="10000">10000</option> 
    <option value="20000">20000</option> 
    <option value="30000">30000</option> 
</select> 

<br /><br /> 
<label>Required Amount</label><br /><br /> 
<input name="requiredamount" type="radio" value="5000" /> 5000 
<input name="requiredamount" type="radio" value="10000" /> 10000 
<input name="requiredamount" type="radio" value="15000" /> 15000 
<input name="requiredamount" type="radio" value="20000" /> 20000 

<br /><br /> 

<input name="" type="submit" value="Get Quote" onclick="addNos()" /> 


</form> 

다음과 같이

내 스크립트입니다.

누구나 anwseR을 아십니까?

+0

왜 자바 태그? –

답변

0

NaN은 숫자가 아닙니다. 0으로 나누거나 정의되지 않은 값을 추가 할 때 발생할 수 있습니다.

위키 : 난 당신의 코드를 테스트하는 시간이 없어했지만, 그것은 사용자가 값을 입력하기 전에 양식 요소에 액세스하려고 자바 스크립트처럼 보이는 좋아 http://en.wikipedia.org/wiki/NaN

? (의미는 정의되지 않음). jQuery를 다운로드

필요가 이렇게하려면 다음을 수행합니다

당신은 때때로로드 된 HTML 요소를 (가지고

  1. NaN의의 원인을 감지하는 방법

    $(document).ready(function(){ //your code {);에 자바 스크립트 코드를 둘러싸고 수 HTML은 자바 스크립트 이후에로드)

  2. 값이 정의되지 않았습니까?
  3. 0으로 나누시겠습니까?
  4. 자바 스크립트는
+0

그래서 어떻게해야합니까? – user1365945

+0

upvote 내 대답은 내가 말할거야! 롤 그냥 농담 봐 (하지만 정말 upvote) – Jack

+0

거기에 가치 theres? – user1365945

0
function addNos(){ 
    var a, b, res; 
    a= parseFloat(document.myForm.salary.value); 
    b= parseFloat(document.myForm.requiredamount.value); 
    res = a+b; 
    window.alert("Hello" + a + b); 
} 

당신은 사용자 입력에 의존 http://www.w3schools.com/jsref/jsref_isnan.asp 제대로 숫자로 입력해야합니다. 구문 분석하기 전에 입력이 정규식을 사용하는 숫자인지 확인해야합니다.

http://jsfiddle.net/rMgeB/

+0

정규 표현식은 숫자를 입력 할 수있는 여러 가지 유효한 방법이 있으므로 숫자를 검증하기에는 너무 복잡합니다. 그것을 파싱하는 것이 더 좋을 것입니다. 그리고 숫자가 isFinite인지 확인하십시오. –

+0

'/ \ d /'는 복잡합니까? – jbabey

0

그것은 "숫자가 아님"(NaN)을 의미한다. "급여"필드 또는 "필수 입력"필드에 숫자가 아닌 값이 있으면 발생합니다. 예를 들어, 값 "100"과 "Blah"를 repsectively 가지고있는 경우, "Blah"에 숫자 표현이 없으므로 a를 계산하는 데 사용 된 parseFloat()는 숫자 100을 반환하고 b에 대한 parseFloat()는 NaN을 반환합니다. 결과적으로 경고 상자에 100과 NaN을 추가하려고하면 표시되는 동작이 나타납니다.

당신은 때는 isNaN() 함수를 사용하여이 값을 다시 한 번 확인 할 수 있습니다 물건을 지 웁니다

a = parseFloat(...); 
if (isNaN(a)) 
{ 
    alert("Sorry, you must enter a real number"); 
    return; 
} 

희망을.

편집 :

가능성이 가장 높은 경우는 귀하의 의견이 달러 (A $)를 가지고 있다는 것입니다 무엇

.parseFloat("$100") == NaN 인 반면 parseFloat("100") == 100은 코드에서 첫 번째 달러 기호를 먼저 제거해야합니다.

0

이 시도 : 라디오 버튼을 선택하면

http://jsfiddle.net/LEX84/

내가 테스트를 추가하지 않았다. 라디오 버튼이 선택되지 않으면 NaN이 결과가됩니다. 라디오 버튼을 얻기

여기에서있다 : javascript selected radio

function validateForm() 
{ 
var x=document.forms["myForm"]["name"].value; 
if (x==null || x=="") 
    { 
    alert("What Is Your Name?"); 
    return false; 
    } 
} 

function getCheckedRadioId(name) { 
    var elements = document.getElementsByName(name); 

    for (var i=0, len=elements.length; i<len; ++i) 
     if (elements[i].checked) return elements[i].value; 
} 
function addNos(){ 
    var a, b, res; 
    a= parseFloat(document.myForm.salary[document.myForm.salary.selectedIndex].value); 
    alert(a); 
    b= parseFloat(getCheckedRadioId("requiredamount")); 
    res = a+b; 
    window.alert("Hello " + a + " " + b); 
}