This is my first question, so please be patient with me.
Im using a combination of jquery-validate and bootstrap wizard. Everything works fine except the ignore options. I need to use it for including hidden checkboxes. If you put just anything in the ignore option the whole bootstrap wizard isnt working anymore. But no errors are displayed.
See my fiddle: https://jsfiddle.net/danzhtyn/1/
HTML:
<div class="container">
<div id="content">
<form name="ad" method="post" action="" id="ad_form" role="form" enctype="multipart/form-data">
<div id="rootwizard">
<div class="navbar">
<div class="navbar-inner">
<ul style="display: inline-block;">
<li><a href="#tab1" data-toggle="tab">Test 1</a></li>
<li><a href="#tab2" data-toggle="tab">Test 2</a></li>
</ul>
</div>
</div>
<div id="bar" class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;"></div>
</div>
<div class="tab-content">
<div class="tab-pane" id="tab1">
<div class="form-group">
<label class="control-label required" for="ad_adtext">Anzeigentext</label>
<textarea id="ad_adtext" name="ad[adtext]" required="required" rows="15" class="form-control"></textarea>
</div>
</div>
<div class="tab-pane" id="tab2">
<div class="form-group">
<input type="checkbox" id="ad_categories_14" name="ad[categories][]" class="hidden" value="14" /> Computer
<input type="checkbox" id="ad_categories_14" name="ad[categories][]" class="hidden" value="15" /> Greets
</div>
</div>
</div>
</div>
</form>
</div>
JS:
$(document).ready(function() {
var $form = $("#ad_form"),
$validator = $form.validate({
ignore: ":disabled",
rules: {
"ad[adtext]": {
required: true
},
"ad[categories][]": {
required: true,
minlength: 1
},
},
messages: {
"ad[adtext]": "Dies ist ein Pflichtfeld! Bitte geben Sie einen Wert an.",
"ad[category][]": "Dies ist ein Pflichtfeld! Bitte wählen Sie mindestens eine Rubrik aus.",
}
});
$('#rootwizard').bootstrapWizard({
onNext: function(tab, navigation, index) {
var $valid = $form.valid();
if (!$valid) {
$validator.focusInvalid();
return false;
}
},
onTabShow: function(tab, navigation, index) {
var $total = navigation.find('li').length;
var $current = index + 1;
var $percent = ($current / $total) * 100;
$('#rootwizard .progress-bar').css({
width: $percent + '%'
});
},
onTabChange: function(tab, navigation, index) {
var $valid = $form.valid();
if (!$valid) {
$validator.focusInvalid();
return false;
}
}
});
});
Remove ignore: ":disabled"
and everything works fine.
Any suggestions?