这是对另一个问题的跟进;首先,我需要在正常的选择列表上进行验证。(第一部分可在此处获得)
我有一个选择菜单,上面有一些 jQuery 验证逻辑。我正在使用 ASP.NET MVC,所以有一些自定义属性 - 但现在我只想让验证工作,所以属性并不重要。
我设法让它发挥作用(实际上,Gajotres 解决了它,而不是我。)
现在我想将它扩展到 jQuery UI selectmenu 插件(插件仍然是非官方的 - 预计在下一版本的 jQuery UI 中正式发布,但你可以在这里找到它:jQuery UI Select Menu (Unofficial)
我已经设法使样式正常工作,但现在验证再次失败。我正在发布我的代码,并在这里提琴。请注意,为了简洁起见,这里发布的代码不止于此。
jsFiddle(带插件)
jsFiddle(没有插件[正常工作])
预期行为
当“默认”选项是选择菜单中当前选择的值时,用户不能提交表单。
这是所有相关文件的链接,以防您出于某种原因不想尝试小提琴。
jQuery
- http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css
- http://code.jquery.com/ui/1.9.2/jquery-ui.js
jQuery 验证插件
选择菜单(分叉)
- http://ciel.github.com/jquery-ui/javascripts/jquery.ui.selectmenu.js
- http://ciel.github.com/jquery-ui/stylesheets/selectmenu.css
Javascript
$(document).ready(function() {
$.validator.addMethod("valueNotEquals", function(value, element, arg){
return arg != value;
}, "");
$("#form1").validate({
rules: {
select_list : {valueNotEquals: $('#select_list').attr('data-val-mustbe-propertyvalue')},
},
messages: {
select_list : { valueNotEquals: $('#select_list').attr('data-val-required') }
},
submitHandler: function(form) {
alert($('#form1').valid());
form.submit();
}
});
$("#select_list").selectmenu();
});
HTML
<form id="form1" action="">
<select id="select_list" name="select_list">
<option value="default">Choose...</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
<input type="submit" id="submit" value="Submit" />
</form>
CSS
body {
font-size: 62.5%;
font-family: "Verdana",sans-serif;
}
fieldset {
border: 0;
}
label, select, .ui-select-menu {
float: left;
margin-right: 10px;
}
select {
width: 200px;
}
.wrap ul.ui-selectmenu-menu-popup li a {
font-weight: bold;
}
在 selectmenu.css 文件中可以找到选择菜单主题的其他 CSS,可在此处获得