2016-04-04 15 views
3

私はwpでフロントエンドログインフォームを実装しています。また、jquery validateを使用してフォームを検証します。送信ハンドラを使用してフォームを送信する。検証は正常に動作し、またajaxですが、主な問題はサブミットハンドラでは機能しないwp_localize_scriptの変数です。jQuery WPで動作しないsubmitHandlerを検証するAJAX/wp_localize_script

var $form = $(this); 
jQuery('form#login').validate({ 
    rules:{ 
     username: { required: true }, 
     password: { required: true } 
    }, 
    submitHandler: function(form) { 
     jQuery.ajax({ 
      type: 'POST', 
      dataType: 'json', 
      url: ajax_login_object.ajaxurl, 
      data: { 
       // contains all required values for login 
      }, 
      success: function(data){ 
       document.location.href = ajax_login_object.redirecturl; 
      } 
     }); 
     $form.submit(); 
    } 
}); 

はここに私のWPのコードです:ここで

function ajax_login_init(){ 
    wp_enqueue_script('script'); 
    wp_enqueue_script('js-validate'); 
    wp_localize_script('ajax-script', 'ajax_login_object', array( 
     'ajaxurl' => admin_url('admin-ajax.php'), 
     'redirecturl' => get_site_url().'/page' 
    )); 
} 

私はajax_login_object値を取得していないです

は、ここに私のJSコードです。これを実装するのが間違っているところを私に教えてください。

+0

'.ajax()'の後に '.submit()'を呼ぶことはできません。 '.ajax()'はページを更新せずにフォームを送信します。 '.submit()'はページのリフレッシュとともに 'action' URLに提出するデフォルトのフォームです。 ajaxの代わりにデフォルトのsubmitを使うことにしたなら、それは 'form.submit()'でしょう。ドル記号なし。 – Sparky

+0

@Sparkyありがとうございます。 – webtuts4u

答えて

0

$ == jQueryに設定した場合は、それに固執してください。プラスあなたの関数のパラメータとして$formを入れることを意味しましたか?

また、スクリプトをローカライズするのは何ですか? ajax-scriptはどこにありますか。

function ajax_login_init(){ 
    wp_enqueue_script('script'); 
    wp_enqueue_script('js-validate'); 
    wp_localize_script('js-validate', 'ajax_login_object', array( 
     'ajaxurl'  => admin_url('admin-ajax.php'), 
     'redirecturl' => get_site_url().'/page' 
    )); 
} 

で試してみて、あなたのローカライズされたスクリプトは、DOM(Chromeでそれを検査し、ajaxurlredirecturlを検索)であるかどうかを確認します。 JS部分:

+0

この文脈で意味をなさない '.ajax()' ...の後に '.submit()'を呼び出さないでください。 OPが 'action' URLへのデフォルトフォームの送信を単に望むならば、' submitHandler'関数の引数が 'form'であると仮定すると、' form.submit() 'で十分です。 – Sparky

+0

本当に、私はコードを正しく見なかった。 –

+0

あなたのおかげでお二人のおかげです。 – webtuts4u

関連する問題