【发布时间】:2015-07-27 11:08:48
【问题描述】:
我想在 yii 中设置唯一电子邮件 ID 的验证,但它不能正常工作,那么问题出在哪里。 我的表单代码如下:
<div class="row">
<?php echo $form->labelEx($model1,'user_email'); ?>
<?php echo $form->textField($model1, 'user_email', array('maxlength' => 300)); ?>
<?php echo $form->error($model1, 'user_email', array('clientValidation' => 'js:customValidateemail(messages,this.id)'), false, true);
$infoFieldFile1 = (end($form->attributes)); ?>
<p class="emailUniqueCheck" style="margin-left: 24%; color: red;">
</div>
我的ajax代码如下:
<script>
function customValidateemail(messages,id){
var nameC= '#'+id;
var a = $(nameC).val();
if (a == '') {
messages.push('Email Id is empty.');
return false;
}
var email = $("#Registration_user_email").val();
$(".emailUniqueCheck").html('<img alt="Loader" src="/images/loading.gif" />');
$.ajax({
url:"<?php echo Yii::app()->request->baseUrl;?>"+"/Supplier/checkUniqueEmail?email="+a,
data:'req=add_more',
dataType:'html',
type:'POST',
async: false,
success:function(resp){
if(resp == 1) {
$(".emailUniqueCheck").html("Email Already exists.");
return false;
} else {
$(".emailUniqueCheck").html("Proceed.");
}
},
error:function(er){
alert("An error has occured, Please reload/refresh the page and try again.");
}
});
}
这里,vaidation 适用于空电子邮件意味着if(a == '') { alert('bla bla'); } 并且页面也不会在单击提交按钮时提交。(根据需要。)
对于 ajax 响应验证工作正常,但只有 return false; 不工作。并提交表单。我尝试了很多东西,但没有用。有谁能帮帮我吗?
【问题讨论】:
-
尝试发出同步 ajax 请求而不是 async .. 这将阻止您的浏览器等待响应,但您的返回 FALSE 会产生一些影响。
-
你想说什么???请简要说明。
-
使用 $.ajax 而不是 $.post。您可以使用 $.ajax 制作 async:false 。如果您希望我修改您的代码以使其正常工作,请告诉我。
-
查看我编辑的代码....但仍然无法正常工作。问题出在哪里?
标签: javascript php jquery ajax yii