我正在使用Codeigniter,我正在创建一个登录注册表单,用于检查用户的电子邮件是否可用。用户可以使用该ID登录。 所以我正在尝试使用Ajax。
所以我把这个Ajax放在我的视图中。
$(document).ready(function() {
$("#email").keyup(function() {
var email = $(this).val();
if (email.length > 3) {
$("#result").html('checking...');
$.ajax({
type: 'POST',
url: emailAvailability,
data: { email: email },
success: function(data) {
console.log(data);
$("#result").html(data);
if (data.indexOf('Available')) {
emailAvaliable = 1;
//$('#candidateLogin').removeClass('disabled');
} else {
emailAvaliable = 0;
//$('#candidateLogin').addClass('disabled');
}
}
});
return false;
} else {
$("#result").html('');
}
});
});
我正在使用parsley插件进行验证。
$(".formValidationClass").on('click', function (e) {
e.preventDefault;
$(this).parsley();
});
现在是控制器代码。
public function check_email_availability(){
$data = $this->input->post();
// Now I want to check email is unique or not without going to database.
}
第二个问题是我要禁用表格直到电子邮件可用&有效的。
我已经尝试过这个脚本来禁用要提交的表单,但它不起作用并且表单已提交。我已经完成了服务器端验证不提交,但我仍然希望阻止它形成客户端。 这是剧本。
$(".formValidationClass").on('click', function(e) {
e.preventDefault;
$(this).parsley().validate();
console.log('on form click, After validation');
// return false;
});
var emailAvaliable = 0;
$(".formValidationClass").submit(function(event) {
// Validate form fields
if (emailAvaliable == 1) {
console.log('Email Avaliable');
$(this).parsley();
return true;
} else {
console.log('Email not Avaliable');
return false;
}
});
所有与改进代码相关的建议都是可以接受的。感谢。
答案 0 :(得分:1)
如果您想阻止表单提交事件,请使用:e.PreventDefault();
查看此Using JQuery - preventing form from submitting以获取更多信息。我认为这对你有用。