June 2, 2010
How to conditionally execute a jquery validation?
Question by Chendur Pandian
I am validating form using jquery validation plugin……
rules: {
Name: "required",
MobileNo: {
required: true,
minlength: 10, remote: '<%=Url.Action("getClientMobNo", "Clients") %>'
},
Address: "required"
},
messages: {
Name: "please provide a client name",
MobileNo: {
required: "Please provide a mobile phone no",
rangelength: jQuery.format("Enter at least {0} characters"),
remote: jQuery.format("This MobileNo is already in use")
},
Address: "please provide client address"
},
This works pretty well on add form validation but i use the same form for edit here they can use the same mobile no,but my plugin validates that mobileno saying there is already a mobileno… But how to execute remote attribute based on a condition,
MobileNo: {
required: true,
minlength: 10,
if($("#HfId").val() == ""){
remote: '<%=Url.Action("getClientMobNo", "Clients") %>'
}
},
Is this a valid jquery conditional validation statement…. How to skip remote attribute based on a condition….
Answer by Starx
Well, I would do something like this
for example my php page is member.php
to add, send a URL like this member.php?action=add
<?
$action = $_GET['action'];
?>
<script>
$("#frmmember").validate({
rules: {
name: {
<? if($action=='add') { ?>
required: true,
<? } ?>
rangelength: [4, 50] },
email: { required: true, rangelength: [5, 50], email: true },
phone: { required: true, number:true, rangelength: [7, 10] }
},
onkeyup: false
});
</script>
In this case, the validation rule required=true is only going to apply if there is “add” in the url variable "action"