jQueryフォームの送信で問題が発生しました。ボタンのクリック時にjQuery ajaxを使用して、重複したフォームフィールドを検証しようとしていました。
ユーザーが重複している場合はメッセージを表示し、そうでない場合はフォーム送信機能をトリガーします。
これが私のコードです:
<form method="post" action="mysite/action" id="signinform" name="signinform">
<input type="text" tabindex="7" name="user_name" style="width: 100%" maxlength="255" id="user_name" class="required" value="<?php echo $user_name ?>" />
<em></em>
<button type="button" onclick="is_duplicate_user()" class="button-big" name="submit">Continue</button>
</form>
<script type="text/javascript">
function is_duplicate_user() {
$('em').html('');
$.ajax({
type: 'POST',
url: 'signin/is_user_exist',
async: false,
data: {'user_name': $('#user_name').val()},
success: function(data) {
if (data !== 'FALSE') {
$('em').html(data);
return false;
} else {
console.log('trigger submit event');
$('#signinform').trigger('submit');
}
}
});
}
</script>
data!=='FALSE'
true の場合はem
ajax が返すデータで設定され、それ以外の場合はコンソール メッセージが表示されますが、submit 関数はトリガーされません。
次に、ボタンの名前name="submit"
をに変更しましたname="continue_button"
。そして、それは働き始めます。
で動作しなかった理由を教えてくださいname="submit"
。