我试图让我的表单用jquery提交,并且遇到一些麻烦。
为什么我的提交处理程序没有被调用?
我正在尝试使用jquery rules部分中的远程验证来验证数据库中是否已经使用了用户名。在数据库中查找的PHP代码工作正常。下面非常简化的代码。
如果我删除"遥控器"输入,调用提交处理程序。如果代码在规则中具有远程条目,则不会调用提交处理程序。通过跟踪JQuery代码,看起来有一些"待处理的请求"阻止提交被调用。
HTML:
<script src="/js/jquery.1.11.2.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="/js/jquery.validate.js"></script>
<input type ='text' placeholder='Username' name="username" maxlength="25" size="20" id="username" >
<input type="submit" value="submit" title="submit" >
使用Javascript:
$(document).ready(function(){
// ----------- Form Validation -----------------
$("#test").validate({
rules: {
username: {
required: true,
minlength:5,
maxlength:25,
remote: {
// async: false,
// data: {
// 'username': $('#username').val()
// },
// dataType: 'json',
//dataType: "Text",
url: "/account/account-search/checkusername.php",
type: "POST"
}
}
},
messages: {
username: {
required: "Please Enter A Username",
remote: 'Username Not Available, Please Choose Another!'
}
},
submitHandler: function(form)
{
var username = $("#username").val();
// Returns successful data submission message when the entered information is stored in database.
var dataString = 'username='+ username ;
// AJAX Code To Submit Form.
$.ajax({
type: "POST",
url: "/account/artistRegistration.php",
data: dataString,
cache: false
});
return false;
}
});
});
PHP:
<?php
// $retval = 'true';
// echo 1;
// return true;
// header('Content-Type: application/json');
// echo json_encode($retval);
echo 'true';
// return;
}