我在ajax和html表单中有一个问题,我需要你的帮助。
我正在使用PARSLEY验证(http://parsleyjs.org/)来验证规则。但问题是验证不支持数据库验证:对于即时,我必须检查字段'nom'是否已存在于数据库中或否,如果存在(显示消息)并且如果不存在则提交表单到myaction.php。
我的ajax脚本:
<script>
$(document).ready(function () {
$("form").submit(function (e) {
e.preventDefault(); //prevent default form submit
var nom = $("#nom").val();
$.ajax({
type: "POST",
url: 'ajax.php',
data: "field="+ nom ,
success: function (data) {
if(data==1){
alert(data);
}else if(data==0){
cache: false
$('form#form_id').submit();
}
},
});
});
});
</script>
我的HTML格式:
<form action="myaction.php" method="post" name="form_name" id="form_id">
<input type="text" id="nom" name="nom" required value="">
<input type="text" id="prenom" name="prenom" required value="">
<input type="text" id="remarque" name="remarque" required value="">
</form>
ajax.php:如果数据库中不存在字段则返回0,如果存在,则返回1
我面临的问题是ajax在循环中调用。在每次提交表单并调用ajax时。我想要的是如果数据等于0(数据库中不存在字段),表单必须提交给myaction.php
答案 0 :(得分:0)
这是一个解决方案。
基本上,您将永远提交和处理该项目。在验证数据后,您需要打破它。由于您只关心nom
,因此请在其上设置一些标记,以便您可以在提交时进行检查
$(document).ready(function () {
$("form").submit(function (e) {
var nom = $('#nom');
var valid = nom.data('valid');
if (valid === 0) { // Is valid, let's continue
return;
} else { // Valid is undefined as was never set
e.preventDefault(); //prevent default form submit
$.ajax({
type: "POST",
url: 'ajax.php',
data: "field="+ nom.val() ,
success: function (data) {
if(data==1) {
alert(data);
} else if(data==0) {
nom.data('valid', 0);
}
}
});
}
});
});