2

1 つのページに登録とログインの 2 つのフォームがあります。ユーザーが「register_username」フィールドにユーザー名を入力しようとすると、on-blur、ajax でこのユーザー名が既に使用されているかどうかがチェックされます。すべて正常に動作しています。しかし、この ajax 呼び出しが行われ、ログインフォームで [送信] をクリックすると、フォーム プロセス php ページではなく、php-ajax ページにリダイレクトされることがわかりました。

Code-Ignitier を PHP フレームワークとして、JQuery を JavaScript ライブラリとして使用しています。それだけです。私がそうするように頼んだら、私が提供しようとする追加情報. どうもありがとうございます。

編集: //Javascript コード:

$('#register_username').live('blur',function() {
 $.post('ajax/username_taken', {'register_username':$(this).val() },
 function(result) {
  if(result) {
   $('#register_username').addClass('error');
  }
  else {
   $('#register_username').removeClass('error');
  }
 });
}

//PHPコード

echo form_open('form/login',$form_attr);
echo ....
echo form_submit($submit_attr);
echo form_close();
echo form_open('form/register',$form_attr);
echo ....
echo form_submit($submit_attr);
echo form_close();

注: これはすべて単純化されています。フォームは実際には異なるビューにあり、レジスターのみがコントローラーを持っています

4

1 に答える 1

1

情報が少ないので勝手な推測です。あなたの JavaScript が送信ボタンのクリック イベントをオーバーライドしているようですfunction(result)

$('submit_button_selector').unbind();

もちろん、ボタンセレクターで $('XXX') 部分を変更します。通常は次のようになります$('#my_form).find(':submit')

それは本当にブラインドショットであり、より多くの情報が大いに役立ちます.

于 2012-12-20T18:41:55.483 に答える