私は単純なフォームを作成しています。フォームが送信され、正常に検証されたら、入力値をコンソールに書きたいと思います。しかし、現在の進捗状況をテストすると、ランダムなテキストが入力され、コンソールにも何も表示されません。フォームの値が表示されないのはなぜですか?
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script language="Javascript">
window.onload = function() { // So the DOM can be defined
function validateForm() {
var form = document.forms['encrypt']['text'];
if(form == "") {
alert("Enter piece of text to encrypt");
return false;
} else {
console.log(form.value);
}
}
}
</script>
</head>
<body>
<form name="encrypt" action="#" onsubmit="return validateForm()">
Text: <input type="text" name="text">
<input type="submit" name="Submit and Encrypt!">
</form>
</body>
</html>
私は何も入力しないと、フォームを送信した場合でも、アラートがポップアップ表示されません:ここで私は今、(任意のコメントアウトコードを除く)しているコードがあります。フォームの問題に関連する他の投稿がありましたが、私とは関係がありません。私のコードに何か問題がありますか?問題は何ですか?どのように修正できますか?
編集:window.onload
は、ウィンドウがロードされているときにのみwindow.onload
がコードを実行することを実現しました。その後、すべての機能が停止します。 onload
ハンドラを削除することに加えて、私はボディ内で検証機能を再配置する必要がありました。
'document.forms'を' null'に設定しませんか? –
申し訳ありませんが、「それ」という行はどちらですか? – Bemmu
'window.onload'ハンドラを削除したところで、' document.forms'でフォームを参照しています。これは、 'validateForm()'宣言の中の最初の行です。 –