jquery validate を使用してフォームを送信前に検証していますが、送信前に選択ボックスの値を検証するにはどうすればよいですか?
上記の例では、現在選択されている要素の値が == 0 の場合、検証を失敗させたいと考えています。
HTML
<form action="/foo" id="register_form" method="post">
<select id="city_select" name="city_id">
<option value="0">Select City</option>
<option value="4">New York</option>
<option value="24">Chicago</option>
<option value="25">Washington</option>
</select>
<input class="" id="username" name="username" type="text" /><br/>
<input class="" id="email" name="email" placeholder="Email" type="text" /><br/>
<input class="" id="password1" name="password1" type="password" />
<input class="" id="password2" name="password2" type="password" /><br/>
<input type="checkbox" value="1" name="terms_of_use" id="terms_of_use">
</form>
Jquery/検証
$('#register_form').validate({
onfocusout: function (element, event) {
},
rules : {
username: {
required: true
},
email: {
required: true,
email: true
},
terms_of_use: {
required: true
},
password1: {
required: true,
rangelength: [5, 50]
},
password2: {
required: true,
equalTo: '#password1'
}
},
messages: {
username: {
required: I18n.t('validation.register.username')
},
city_id: {
required: I18n.t('validation.register.city')
},
email: {
required: I18n.t('validation.register.email'),
email: I18n.t('validation.register.email_f')
},
terms_of_use: {
required: I18n.t('validation.register.tos')
},
password1: {
required: I18n.t('validation.register.password1'),
rangelength: I18n.t('validation.register.password_l')
},
password2: {
required: I18n.t('validation.register.password2'),
equalTo: I18n.t('validation.register.password_match')
}
}
});