-2

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

这是我的表格:

<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;
}
4

3 回答 3

3

这是一个演示

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;
}
于 2013-05-01T21:30:57.567 回答
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;
    }
}

小提琴

于 2013-05-01T21:31:08.847 回答
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 = ""哪个是赋值运算符)。

于 2013-05-01T21:43:19.990 回答