I'm trying to do some form validation with Wordpress and jQuery Validate plugin. My js code is:
<script type="text/javascript">
var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
// submit reg-form
jQuery(document).ready(function ($) {
$.ajaxSetup({
cache: false
});
$("#username").change(function(){
$("#username").removeData("previousValue");
});
$("#moto_register").validate({
ignore: "",
rules: {
username: {
remote: {
url: ajaxurl,
type: "post",
data: {
username: function() {
return $( "#username" ).val();
},
action: 'moto_validate_username'
}
}
},
},
submitHandler: function(form) {
var sData = $(form).serialize();
$.ajax({
url: ajaxurl,
async: false,
type: 'POST',
data: sData,
success: function (data) {
if (console.log) console.log(data);
location.href = "http://test.net/?page_id=30 "
}
});
}
});
Im the Wordpress plugin I have following code:
function moto_validate_username() {
$user_id = username_exists( $_POST['username'] );
if ( !$user_id) echo 'true';
else echo 'false';
exit();
}
add_action( 'wp_ajax_nopriv_moto_validate_username', 'moto_validate_username' );
add_action( 'wp_ajax_moto_validate_username', 'moto_validate_username' );
this works SOMETIMES only, and sometimes doesn't. The AJAX seems to be actualy fired, but there's no response, and so no validation. Anyone has an idea why?