こんにちは、さるまりんです。
JavaScriptでフォームの値をチェックして、OKならそのままフォームをsubmit
、それ以外はalert
を表示してフォームのsubmit
を止めるということがあると思います。
簡単なフォームで試すと以下のようになります。
HTML
<form name="myForm">
<input type="text" name="text1" value="">
<button type="submit" onclick="return checkMyForm();">送信</button>
</form>
JavaScript
function checkMyForm() {
if (document.myForm.text1.value == "") {
alert("何か入力してください。");
return false; // myFormのsubmitを止める
} else {
return true; // myFormをsubmitする
}
}
onclick
でreturn false;
すると止まり、return true;
でそのままsubmit
します。
button
に対してなのでonclick
、form
に対してならばonsubmit
で同じようなことができます。
さてこれをjQueryでやると次のようになります。
jQueryでform
のsubmit
を止める
jQueryではイベントに処理をbind
することで実現します。bind
ってなあに?正確ではないかもですが、簡単にいうと「引っ付ける」です。click
イベントに引っ付けてもできると思いますが、ここではsubmit
イベントでやってみます。
HTML
<form id="myForm">
<input type="text" name="text1" value="" id="text1">
<button type="submit">送信</button>
</form>
JavaScript
$(function() {
// myFormがsubmitされる時
$('#myForm').submit(function() {
// text1が入力されていなければ
if($('#text1').val() == "") {
// alertを出して
alert("何か入力してください。");
// submitを止める
return false;
}
});
});
上のコードではname
属性ではなくてid
属性で指定していますが、適切なものならもちろんclass
属性の指定やタグの指定でも動作しますよ。
わざわさreturn true;
は書いてません。そのまま放っておくとsubmit
されるようです。
jQueryでやろうとして迷ったのでメモさせてもらいました。
イベントにbind
する方法ってなんだか格好いいって感じています。
まだまだ勉強ですね。
読んでくださってありがとうございました。
ではまた!