2013-05-07 85 views
0

问题1:打印错误/停止表单提交来位数的JavaScript

我试图创建一个简单的JavaScript函数来检查是否所有的字符输入领域是数字。该功能正在运行,但不是我所希望的。我在javascript中找到了isNaN函数,它似乎没有工作。无论每次输入“asdf”还是“1234”,都会输入if语句。

问题2:

我希望表单显然​​停止提交如果数字的检查失败。但是,我希望它继续提交页面,否则。我一直在阅读如何使用纯JavaScript实现此目标,并按照指示执行回报。这是一个可行的方法来执行此操作吗?备择方案?

任何帮助将是对问题1或2

这里是我的全部代码很大:

<title>Bank System</title> 

<script type="text/javascript"> 

     function checkNumeric() 
     { 
       var pin = document.getElementById('pin'); 
       if(isNaN(pin)) 
       { 
         document.getElementById('message').innerHTML="Not A Valid Number"; 
         return false; 
       } 
       else 
       { 
         return true; 
       } 

     } 




</script> 

<body style="background-color: gray;"> 

     <h1>Welcome To Clayton's Credit Union</h1> 
     </br></br> 

     <form action="process.php" method="POST"> 
       <label>Username: <input type="text" name="username"/></label> 
       </br> 
       <label>Pin Number<input type="text" maxlength="4" name="pin" id="pin"/></label> 
       </br></br> 
       <input type="submit" value="Submit" name="submit" onClick=" return checkNumeric()"/> 
       <p id="message"></p> 
       </br> 

     </form> 

*请注意,我知道这是不是安全的呢。我特意制作这个例子来说明它的脆弱性。

回答

2

您正将一个元素传递给isNaN而不是它的值。试试这个:

var pin = document.getElementById('pin').value; 

BTW

您应该运行在表格上此验证提交,而不是按一下按钮:代替

<form action="process.php" method="POST" onsubmit="return checkNumeric()"> 

<input type="submit" value="Submit" name="submit" /> 

<form action="process.php" method="POST"> 

<input type="submit" value="Submit" name="submit" onclick="return checkNumeric()" /> 
+0

的伟大工程!非常感谢! – ZAX 2013-05-07 22:07:45

+0

@ZAX很高兴帮助。另外,我更新了'form'标记中的'onclick'属性以'onsubmit'。 – 2013-05-08 00:29:41