从今天早上开始,我就被Jquery Validation Engine和 codeigniter 困住了。我有一个包含名称、电子邮件、密码的表单......我用 Jquery 检查所有这些字段,然后在 php 中检查。
当用户输入已使用的电子邮件时,会出现一个带有错误消息的工具箱,但表单仍在提交...如果我留下一个空的电子邮件字段,则不会提交。所以我猜当它在数据库中检查它之后并没有采取好的行动(它返回错误......)
这是我认为的代码:
<?php $data_email_signup = array(
'name' => 'email_signup',
'id' => 'email_signup',
validate[required,custom[email],ajax[ajaxEmailCall]]'
);
echo form_input($data_email_signup); ?>
...
...
jQuery(document).ready(function(){
jQuery("#form_signup").validationEngine({
submitHandler: function(form) {
form.submit();
}
});
});
在jquery.validationEngine-fr.js
我有:
"ajaxEmailCall": {
"url": "/.../ajaxValidateFieldEmail.php",
"alertTextLoad": "* Please wait",
"alertText": "* Email already used"
},
在ajaxValidateFieldEmail.php
我的文件中:
<?php
$validateValue=$_POST['fieldValue'];
$validateId=$_POST['fieldId'];
$arrayToJs = array();
$arrayToJs[0] = $validateId;
$resultats=$connexion->query("SELECT ...");
$count = $resultats->rowCount();
if($count == 0){
$arrayToJs[1] = true;
echo json_encode($arrayToJs);
}
else {
$arrayToJs[1] = false;
echo json_encode($arrayToJs);
}
?>
Firebug 返回 FALSE,当我输入已使用的电子邮件时,它会显示已使用的电子邮件,但我不明白为什么表单仍然经过验证。
有人有想法吗?