私は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コードです。これを実装するのが間違っているところを私に教えてください。
'.ajax()'の後に '.submit()'を呼ぶことはできません。 '.ajax()'はページを更新せずにフォームを送信します。 '.submit()'はページのリフレッシュとともに 'action' URLに提出するデフォルトのフォームです。 ajaxの代わりにデフォルトのsubmitを使うことにしたなら、それは 'form.submit()'でしょう。ドル記号なし。 – Sparky
@Sparkyありがとうございます。 – webtuts4u