Take the 2-minute tour ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

I was making a javascript function in which I need to confirm the input. I wrote the following code but its giving negative value i.e. "else" part even if i enter a valid value. Can some one please suggest a solution?

Html file:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Javascript App</title>
<script type="text/javascript" src="app1.js">

</script>
</head>
<body><h1 id="heading1" style="text-align:center; height:auto; width:auto; font-family:'Arial Black', Gadget, sans-serif">Determinant of a nxn matrix</h1> 
<p id="paragraph1" style="font-family:'Arial Black', Gadget, sans-serif"> This program allows you to compute the determinant of a nxn matrix</p>

<p>
Input the order of the matrix
<br />

<input type="text" maxlength="3" name="value" />
<input type="button" value="submit" onclick="verifyorder(value)" />
</p>
<p id="error"></p>
<p id="detspace"></p>



</body>
</html>

Javascript File:

function verifyorder(order){
;
    if(order>0){
        return true;
    }
    else{
        alert("Sorry, you need to enter a positive integer value, try again");
        document.getElementById('error').innerHTML="Sorry, you need to enter a positive integer value, try again"; 

    }
}
share|improve this question
    
The code you posted clearly runs after the problems occurs. My guess is that you have passed in a string, not a number, but without the code calling verifyorder I can't tell. –  Malvolio Mar 15 '11 at 18:01
    
There is nothing in your code which associates the (undefined and uninitialised) Javascript variable called "value" with a DOM element which happens to have the name "value". You need in some way to tell the Javascript to find that input element and extract its value. –  Colin Fine Mar 15 '11 at 18:03
    
How do i do that? –  Frustrated Coder Mar 15 '11 at 18:05

3 Answers 3

up vote 1 down vote accepted

Here is the JSfiddle Demo

I changed your HTML and give your input textfield an id of value. I removed the passed param for your verifyorder function, and instead grab the content of your textfield by using document.getElementById(); then i convert the str into value with +order so you can check if it's greater than zero:

<input type="text" maxlength="3" name="value" id='value' />
<input type="button" value="submit" onclick="verifyorder()" />
</p>
<p id="error"></p>
<p id="detspace"></p> 

function verifyorder() {
        var order = document.getElementById('value').value;
        if (+order > 0) {
            alert(+order);
            return true;
        }
        else {
            alert("Sorry, you need to enter a positive integer value, try again");
            document.getElementById('error').innerHTML = "Sorry, you need to enter a positive integer value, try again";
        }
    }
share|improve this answer

Give the textbox an id of "txtValue" and change the input button declaration to the following:

<input type="button" value="submit" onclick="verifyorder(document.getElementById('txtValue').value)" />
share|improve this answer

Try: if(parseInt(order)>0){....

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.