-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 に答える