问题
I am using the jQuery validate plugin for doing form validation. it's just checking first field only. if first field validation is true then it's submitting form. it's not validating rest fields..
i am using bootstrap 3.0
<script type="text/javascript">
$(document).ready(function(){
$('#contact').validate({
rules: {
firstname: {
required: true,
minlength: 5,
},
useremail: {
required: true,
}
}
});
})
</script>
<form action="" method="" id="contact">
<div class="form-group">
<label> Your Name </label>
<input type="text" class="form-control" placeholder="Enter Your Name" id="firstname" required="" minlength="5"/>
</div>
<div class="form-group">
<label> Your E-mail </label>
<input type="email" class="form-control" placeholder="Enter Your Email" id="useremail" required=""/>
</div>
<div class="form-group">
<label> Contact Detail </label>
<input type="text" class="form-control" placeholder="Enter Contact Number" id="mobile" minlength="10" maxlength="10" required=""/>
</div>
<div class="form-group">
<label> Type</label>
<select class="form-control">
<option> Inquiry </option>
<option> Complaints </option>
<option> Feedback </option>
<option> Others </option>
</select>
</div>
<div class="form-group">
<label> Message</label>
<textarea class="form-control" rows="3" cols="5" placeholder="Enter Your Message Here..." id="message" minlength='10' required=""></textarea>
</div>
<button type="submit" class="btn btn-primary btn-lg"> Send</button>
</form>
I don't know what's going wrong with my code? Please help...
Thanks in advance
回答1:
You have a typo in your validate options. relues must be rules.
Name attributes must also be specified:
HTML
<form action="" method="" id="contact">
<div class="form-group">
<label>Your Name</label>
<input type="text" class="form-control" placeholder="Enter Your Name" name="firstname" required="" minlength="5" />
</div>
<div class="form-group">
<label>Your E-mail</label>
<input type="email" class="form-control" placeholder="Enter Your Email" name="useremail" required="" />
</div>
<div class="form-group">
<label>Contact Detail</label>
<input type="text" class="form-control" placeholder="Enter Contact Number" name="mobile" minlength="10" maxlength="10" required="" />
</div>
<div class="form-group">
<label>Type</label>
<select class="form-control">
<option>Inquiry</option>
<option>Complaints</option>
<option>Feedback</option>
<option>Others</option>
</select>
</div>
<div class="form-group">
<label>Message</label>
<textarea class="form-control" rows="3" cols="5" placeholder="Enter Your Message Here..." id="message" minlength='10' required=""></textarea>
</div>
<button type="submit" class="btn btn-primary btn-lg">Send</button>
</form>
Javascript
$(document).ready(function () {
$('#contact').validate({
rules: {
firstname: {
required: true,
minlength: 5,
},
useremail: {
required: true,
}
},
errorClass : 'has-error',
validClass : 'has-success',
highlight:function(element, errorClass, validClass) {
$(element).parents('div').addClass(errorClass).children().removeClass(errorClass);
$(element).parents('div').removeClass(validClass).children().removeClass(validClass);
},
unhighlight: function(element, errorClass, validClass) {
$(element).parents('div').removeClass(errorClass).children().removeClass(errorClass);
$(element).parents('div').addClass(validClass).children().removeClass(validClass);
}
});
})
Fiddle here
Error and valid stying can be done using this CSS:
.has-error
{
background-color: rgb(255, 0, 0);
}
.has-success
{
background-color: rgb(0, 255, 0);
}
回答2:
besides the spelling error. If you are using this plugin Jquery validation. You are missing the name attribute for the input.
<input type="email" class="form-control" placeholder="Enter Your Email" id="useremail" name="useremail"/>
According to the documentation, you have to assign each element that needs to be validated the 'name' attribute and specify the validation rule with i.e. name="firstname".
I suggest trying this even if you are not using the mentioned plugin.
来源:https://stackoverflow.com/questions/19541917/validation-plugin-is-not-validating-all-fields