у вас есть ошибка в вашем HTML
<select name="prefix" id="prefix">
<option selected="selected" value=" ">Select One</option>
<option value="ms">Ms</option>
<option value="miss">Miss</option>
<option value="mrs">Mrs</option>
<option value="mr">Mr</option>
<option value="dr">Dr</option>
</select>
в приведенном выше HTML-коде
<option selected="selected" value=" ">Select One</option>
значение имеет "пробел" - "" не пусто
и когда вы проверяете, вы проверяете пустое вместо пробела, чтобы оно не дало никаких результатов.
Изменил код, чтобы убрать пробел в значении выбранной опции
<select name="prefix" id="prefix">
<option selected="selected" value="">Select One</option>
<option value="ms">Ms</option>
<option value="miss">Miss</option>
<option value="mrs">Mrs</option>
<option value="mr">Mr</option>
<option value="dr">Dr</option>
</select>
и выполнил этот сценарий Java, и он работал хорошо.
$('#geninfo').validate({
rules: {
firstname: {
required: function () {
return $('#prefix').val() == ''
}
}
},
messages: {
firstname: alert('enter a name') //enter a name'
}
});
Надеюсь, это поможет,