脚本未正确验证名称字段

时间:2014-09-22 15:01:47

标签: javascript html forms validation

我一直在设置文件以向自己演示表单验证。但是我发现脚本没有检查名称字段是否有效,有人可以告诉我哪里出错了吗?

<!DOCTYPE html>

<html>

    <head>

        <script>
            function kValForm() {
                var n = document.forms["kForm"]["kName"].value;
                ...
                if( n == null || n == " " || n ="") {
                    alert("Please fill in your name.");
                    return false;
                }
                ...
            }
        </script>

    </head>

    <body>

        <form name="kForm" onsubmit="kValForm()">

            Name: <input type="text" name="kName" placeholder="Khalifa">
            <br/>
            ...
            <br/>
            <input type="submit">

        </form>


    </body>

</html>

省略号被删除了不相关的代码,占用了大量空间。但上面的代码即使它是空的也会发送名称形式,为什么?

3 个答案:

答案 0 :(得分:0)

你的if(缺少==

出错了
if( n == null || n == " " || n ="") {


if( n == null || n == " " || n =="") {

答案 1 :(得分:0)

您的表单提交是因为您必须更改您的onsubmit:

 <form name="kForm" onsubmit="return kValForm()">

这会提示。

以下是修改过的示例的链接,可以正确显示警告:http://jsfiddle.net/bmartinelle/dyL4j49j/

(注意:你也需要解决你的字符串比较问题 - &#34; ==&#34;而不只是一个&#34; =&#34;

编辑: 如上所述@Ramachandran Krishnan你可以更有效地检查一个空字符串,详见stackoverflow帖子:How do you check for an empty string in JavaScript?

(注意:只是(n)不起作用)

答案 2 :(得分:0)

请替换它

onsubmit="kValForm()"

通过

onsubmit="return kValForm(this);