输入验证功能不起作用

时间:2013-05-01 21:28:25

标签: javascript function

我有一个功能来检查是否在电子邮件字段中输入了任何文本但是它不起作用 我不确定我错过了什么。

这是我的表格:

<fieldset>
    <legend>Contact Information</legend>
    <form action="" id="contactInfo" onsubmit="checkform()">First Name:
        <input type="text" name="fname" id="fname">
        <br />Last Name:
        <input type="text" name="lname" id="laname">
        <br />Email:
        <input type="text" name="email" id="email">
        <br />
        <button type="submit">Submit</button>
    </form>
</fieldset>

这是我在单独的.js文件中的功能

function checkform(form) {
    if (document.form.email.value = "") {
        alert("Please enter your email address.");
        document.form.email.focus();

        return false;
    }

    return true;
}

3 个答案:

答案 0 :(得分:3)

Here is a demo

<强> HTML

<fieldset>
    <legend>Contact Information</legend>
    <form id="contactInfo" onsubmit="checkform()">
        First Name: <input type="text" name="fname" id="fname"><br />
        Last Name: <input type="text" name="lname" id="laname"><br />
        Email: <input type="text" name="email" id="email"><br />
        <button type="submit">Submit</button>
    </form>
</fieldset>

<强>的JavaScript

function checkform(form) 
{
    console.log(form);
    if(document.forms[0].email.value == ""){
        alert("Please enter your email address.");
        document.form.email.focus();
        return false;
    }
    return true;
}

答案 1 :(得分:1)

请改用:

 document.forms[0].email.value 

或使用表单ID来检索值。

function checkform(form) {
    if (document.forms[0].email.value == "") {
        alert("Please enter your email address.");
        document.forms[0].email.focus();
        return false;
    }
}

fiddle

答案 2 :(得分:0)

将表单作为参数this传递给您的checkForm()函数。这样,您可以将checkForm()函数与多个表单一起使用。像这样:

<fieldset>
    <legend>Contact Information</legend>
    <form action="" id="contactInfo" onsubmit="checkform(this)">First Name:
        <input type="text" name="fname" id="fname">
        <br />Last Name:
        <input type="text" name="lname" id="laname">
        <br />Email:
        <input type="text" name="email" id="email">
        <br />
        <button type="submit">Submit</button>
    </form>
</fieldset>

然后你可以使用验证函数中的document.前缀来访问表单元素,如下所示:

function checkform(form) {
    if (form.email.value == "") {
        alert("Please enter your email address.");
        form.email.focus();

        return false;
    }

    return true;
}

(另外,请务必检查form.email.value == ""而非form.email.value = ""哪个是作业运营商。