数字JavaScript的打印错误/停止表单提交

时间:2013-05-07 21:43:21

标签: javascript html error-handling

问题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>

*请注意,我知道这无论如何都不安全。我专门用这个例子来说明它是多么脆弱。

1 个答案:

答案 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()" />