(送信ボタンではなく) リンクを使用してフォームを送信する場合、どのようにフォームを検証しますか?
これは私がフォームを送信するために使用するものです:
<a href='javascript:document.forms["send"].submit()'>Send</a>
しかし、フォーム内のテキスト領域をチェックして、空でない場合にのみ送信するにはどうすればよいでしょうか?
(送信ボタンではなく) リンクを使用してフォームを送信する場合、どのようにフォームを検証しますか?
これは私がフォームを送信するために使用するものです:
<a href='javascript:document.forms["send"].submit()'>Send</a>
しかし、フォーム内のテキスト領域をチェックして、空でない場合にのみ送信するにはどうすればよいでしょうか?
フォームが送信ボタンまたは JavaScript で送信されたかどうかにかかわらず、onSubmit イベントは引き続き発生します。したがって、フォームの送信イベントを監視するだけで十分です。
最初に、簡単にアクセスできるようにフォームに ID を付与します。私の例では「myForm」を使用します。
document.getElementById('myForm').onSubmit = function() {
// validate textarea
// return false on bad data
// return true if ok
}
通常、検証関数はフォームの onsubmit リスナーにアタッチされ、false
フォームが送信されるべきでない場合に返されます。
<form ... onsubmit="return validate(this);" ...>
検証機能は次のようなものです。
function validate(form) {
var valid = true;
var elements = form.elements;
for (var i=0, iLen=elements.length; i<iLen; i++) {
// validate elements[i]
// if any invalid, set valid to false
}
return validl;
}