0

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 の場合はemajax が返すデータで設定され、それ以外の場合はコンソール メッセージが表示されますが、submit 関数はトリガーされません。

次に、ボタンの名前name="submit"をに変更しましたname="continue_button"。そして、それは働き始めます。

で動作しなかった理由を教えてくださいname="submit"

4

2 に答える 2