问题1:
我正在尝试创建一个简单的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>
*请注意,我知道这无论如何都不安全。我专门用这个例子来说明它是多么脆弱。
答案 0 :(得分:2)
您正在将元素传递给isNaN
而不是它的值。试试这个:
var pin = document.getElementById('pin').value;
<强>顺便说一句强>
您应该在表单提交而不是单击按钮上运行此验证:
<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()" />