これは初歩的なことのように聞こえますが、正直にダイヤルすることはできません。1ページに2つのフォームがあります。そのようにトリガーされるいくつかのフォーム検証関数を作成しました。
$("form").submit(function(event) {
event.preventDefault();
checkRequired();
checkLengths();
checkFormats();
checkErrors();
});
これは素晴らしいですが、関数内では、送信ボタンがクリックされた元$(this)
を識別するために使用することはできません。<form>
checkRequired()関数alert($(this).attr('id'));
で書いたとしましょう。「オブジェクト、オブジェクト」に警告します。
同じコードを関数内に配置すると$("form").submit()
、フォームのIDが返されます。
関数内のセレクターは$("input[type='text']")
似たようなものですが、関数は送信されたフォームの入力だけでなく、すべての入力で実行されます。
使用したサンプルfunction():
function checkFormats() {
alert("Checking Formats...");
$(".email").each(function(){
alert("Checking Formats: Email...");
var emailField = $(this).children("input[type='text']");
var strEmail = emailField.val();
if( strEmail.indexOf( "@" ) == -1 ) {
alert("What the hell?");
}
});
}
解決策を聞いたらばかげていると思いますが、ちょっと疲れすぎてます笑…よろしくお願いします!
$("form",this)
多分私をどこかに連れて行くかもしれないと思っていますか?