Ajaxを使用して送信するフォームページがあります。電子メールは、すでにパスワードが 3と一致した場合にそれがない場合は、別の「画面」に切り替えて 4.私はアヤックスAjaxコールバックが実行されていません
を使用してフォームを送信アヤックス 2.チェックを使用して存在する場合、私の計画は1 にチェックしていますvalidate関数が実行されないので混乱します。パスワードが一致していない場合でも、アラートではなく画面を切り替えることもありません。したがって、フォームは提出されません。私のコードは、私は、彼らが一致しない場合はfalseがその時点から機能を終了するので、イベントリスナーの残りの部分は実行されません、と思ってい
$('form input:last-child').click(function(e){
e.preventDefault();
var allFields = e.target.parentNode;
function validate() {
if (allFields.elements[3].value !== allFields.elements[4].value) {
return false; // If they don't match, return false
} else {
$('#form-div form').css('left', '-70%');
$('#confirm p').css('margin-left', '-12%'); // else switch screens
}
}
if (validate != false) {
$('#hidden').load("server_script.php"); // `hidden` is a hidden div somewhere on the page
} else
alert ("Passwords do not match");
});
下回ります。だから私は、イベントリスナーの外でvalidate関数のインスタンスを作成し、click関数の中で呼び出そうとしましたが、従属変数のために解析しないので、これについてどうやって行くのか分かりません。
更新 関連付けられたHTMLが添付されています。 (ボーナス:正規表現パターンは、2以上の文字と一致しない)
<div id=form-div>
<form method=POST action="" >
First Name: <br> <input type=text name=first_name pattern="[a-z]{2,}" required /> <br> <br>
Last Name: <br> <input type=text name=last_name pattern="[a-z]{2,}" required /> <br> <br>
Email: <span id=emailReport></span> <br> <input type=email name=email id=email required /> <br> <br>
Password: <br> <input type=password name=password required pattern=".{6,}" title="Password must be six or more characters" /> <br> <br>
Confirm password: <br> <input type=password name=password required /> <br> <br>
<input type=hidden name=sign_up_date />
<input type=submit value='sign up' />
</form>
<div id=confirm> <p>Some text</p> </div>
</div>
</div>
を持っている必要があります検証関数を呼び出すされていない 'は何ですかどのような援助 – RiggsFolly
であることがその困難validate!= false'? –
@RiggsFollyがhtmlを追加しました –