1

空のフォームを送信しようとすると、エラー メッセージが表示されるようにしています。以下のコードは、何が起こっているべきかを示しています。

 function prepareEventHandlers() {
document.getElementById("frmContact").onsubmit = function () {
    if (document.getElementById("email").value == '') {
        document.getElementById("errorMessage").innerHTML = 'Please provide at least an email address!';
        return false;
    }
    else {
        document.getElementById("errorMessage").innerHTML = '';
        return true;
    }
};
}


window.onload = function () {
prepareEventHandlers();
}

私のcshtml側のコードは次のとおりです。

<form id="frmContact" method="post">
<fieldset>
<legend>Personal Information</legend>
<p>email and other elements here.</p>
<div>
<input type="checkbox" name="checkbox1" checked="false" />
Remind me later <br />
</div>
<p><span id="errorMessage"></span></p>
<input type="submit" value="Send" id="send"/>
</fieldset>
</form>
<script src="http://localhost:53734/Scripts/JScript3.js"></script>

デバッグを試みましたが、クリック時に prepareEventHandlers メソッドが呼び出されません。また、フォームの上に script タグを貼り付けようとしましたが、これも何もしませんでした。

4

2 に答える 2

1

フォームにメールの入力要素がありません。JavaScript は email の ID (おそらく入力) を持つ要素を探してdocument.getElementById("email").valueいますが、フォームにはそれがありません。

変化する:

<p>email and other elements here.</p>

に:

<p><input id="email" /></p>

そして、あなたのコードは正常に動作します。jsFiddle の例

于 2012-08-24T17:14:23.500 に答える
1

検証が機能するには、対応する ID を持つ要素が必要です。. .ここでは、電子メール ID 要素はありませんが、検証しようとしています

以下を試してください

<input type="text" id="email"/> 

ここにフィドルがあります

于 2012-08-24T17:15:35.333 に答える