I\'m having an issue with the jQuery validate plugin. I have a set of 3 radio buttons, if either of the first two are selected, the user is shown an extra s
$("#job-earnings-salary:checked") returns a jQuery object which will always be truthy
$("#client-form").validate({
focusInvalid: false,
ignore: [],
rules: {
salaryband: {
required: function(element) {
return $('#job-earnings-salary').is(':checked')
}
}
}
});
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.js"></script>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.12.0/jquery.validate.js"></script>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.12.0/additional-methods.js"></script>
<form id="client-form">
<!-- radio button select -->
<label>Earnings</label>
<div class="multiple-select earnings-wrapper clearfix">
<div class="third">
<input id="job-earnings-salary" class="trigger" data-type="salary" type="radio" name="jobearnings" value="salary" required="true">
<label for="job-earnings-salary">Salary</label>
</div>
<div class="third">
<input id="job-earnings-hourly" class="trigger" data-type="hourly" type="radio" name="jobearnings" value="hourly" required="true">
<label for="job-earnings-hourly">Hourly</label>
</div>
<div class="third">
<input id="job-earnings-unspecified" class="trigger" data-type="none" type="radio" name="jobearnings" value="unspecified" required="true">
<label for="job-earnings-unspecified">Unspecified</label>
</div>
<input type="hidden" name="earningstype" id="earnings-type" class="trigger-input" value="">
</div>
<!-- First select box -->
<label for="salaryband">Salary Band</label>
<div class="select">
<span class="select-default">Select Salary Band</span>
<div class="options">
</div>
<input type="hidden" name="salaryband" id="salaryband" class="salary-band" />
</div>
<input type="submit" class="button" value="Submit" />
</form>