I have this form field called Template name and i have to check its uniqueness using validator addMethod function in my cakephp driven application.I can not understand how this works and how it will be validated if name is not unique.It is stoping form submission if name is unique.Below is my code.Please Help me with this and try to rectify my errors.
Client side Code
function validatefrm() {
var validate_frm = $("#EmailTemplateEditForm").validate({
onkeyup: false,
rules: {
"data[EmailTemplate][template_name]": {
required:true,
validateTemplatename:true
},
},
messages: {
"data[EmailTemplate][template_name]": {
required:"<br/>Please Enter Template name !",
},
}
});
jQuery.validator.addMethod("validateTemplatename",function (value,elememt){
var inputElem = $('#EmailTemplateEditForm :input[name="data[EmailTemplate][template_name]"]'),
data = { "template_name" : inputElem.val() },
eReport = '';
$.ajax(
{
type: "POST",
url: "<?php echo HTTP_ROOT.'email_templates/check_unique/'?>",
dataType: "json",
data: data,
success: function(data) {
if (data !== 'true'){
return false;
}
else{
return true;
}
},
error: function(xhr, textStatus, errorThrown) {
alert('ajax loading error... ... ');
return false;
}
});
}, '');
Server Side Coding in Controller
function check_unique(){
if (isset($this->params['form']['template_name']) && !empty($this->params['form']['template_name'])){
$template_name = trim($this->params['form']['template_name']);
$totaltemplates = $this->EmailTemplate->find('count', array('conditions'=>array('EmailTemplate.template_name' => $template_name)));
if($totaltemplates == 0) {
echo(json_encode(true)); //Name is Unique
exit;
}
else{
echo(json_encode(false)); //Name already exists
exit;
}
}
else{
echo "false"; //invalid post var
}
}
}