0

I m using jquery validator plugin. i need to validate some field with some condition. how do we apply that?

i have a form where user select a country..then user creates branch on the fly, now i want to validate that if user do not select a county then prompt to select country and if user select a country then prompt to create atleast one branch.

what i do as far

if user create any branch then there is a hidden field of counting branch. but that field is filled after creating branch, before that( on page load ) is has no value so if i validate for that hidden field then it always return true. what should i do

here is code snippet i have used but i know there must be a better way to manipulate all above..please suggest me optimize way to do this

<script type="text/javascript">
jQuery.metadata.setType("attr", "validate");

jQuery('#createForm').submit(function(){
        if(jQuery("#hasbranch").val()== 0 ){
            jQuery(".brancherror").html('Atleast one branch is necessary');
            return false;
        }
    });

var validator=jQuery("#createForm").validate({
               rules: { list of rules},
               messgae : { list of messages },                                
});
</script>

<form name="createForm" id="createForm">
<table>
<tr>
      <td>Select Country :</td>
      <td >
      <select name="country_id" id="country"  class="selectbox" onchange="return showBranch();"     title="Please select country" validate="required:true"  >
    <option value="" >Select Country </option>
    <?php foreach($this->country as $key => $country) { ?>
    <option value="<?php echo $country->id; ?>"<?php if ($country->id == $this->ad_data['country_id']) {?> selected="selected" <?php } ?> > <?php echo $country->name; ?></option> 
    <?php } // end of foreach ?>
      </select>
      </td>
  </tr>
  <tr>
      <td> //Here is link to add branch (via iframe) </td>
  </tr>    
  </table>
   <input type="hidden" value="<?php echo count($_SESSION['branches'])? 1: 0 ;?> name="hasbranch" id="hasbranch" />
   </form>  

1 Answer 1

2

You could use depends on rule to apply a conditional validation:

rules: {
    someField: {
       required: true,
       email: {
           depends: function(element) {
               // require someField to be a valid email only if the user checked 
               // to be contacted by email
               return $("#contactform_email:checked");
           }
       }
    }
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.