嗨有什么想法如何从这个花哨的选择框中获取值,将选择框更改为网站加载的ul li,这里是样式选择框的fiddle ..
HTML
<select id="selectbox1">
<option value="">Select an option…</option>
</select>
JQuery的
$('select').each(function() {
var $this = $(this),
numberOfOptions = $(this).children('option').length;
$this.addClass('s-hidden');
$this.wrap('<div class="select"></div>');
$this.after('<div class="styledSelect"></div>');
var $styledSelect = $this.next('div.styledSelect');
$styledSelect.text($this.children('option').eq(0).text());
var $list = $('<ul />', {
'class': 'options'
}).insertAfter($styledSelect);
for (var i = 0; i < numberOfOptions; i++) {
$('<li />', {
text: $this.children('option').eq(i).text(),
rel: $this.children('option').eq(i).val()
}).appendTo($list);
}
var $listItems = $list.children('li');
$styledSelect.click(function(e) {
e.stopPropagation();
$('div.styledSelect.active').each(function() {
$(this).removeClass('active').next('ul.options').hide();
});
$(this).toggleClass('active').next('ul.options').toggle();
});
$listItems.click(function(e) {
e.stopPropagation();
$styledSelect.text($(this).text()).removeClass('active');
$this.val($(this).attr('rel'));
$list.hide();
/* alert($this.val()); Uncomment this for demonstration! */
});
$(document).click(function() {
$styledSelect.removeClass('active');
$list.hide();
});
});
答案 0 :(得分:0)
如何从这个花哨的选择框中获取值
点击$listItems
: -
$listItems.click(function(e) {
e.stopPropagation();
$styledSelect.text($(this).text()).removeClass('active');
$this.val($(this).attr('rel'));
$list.hide();
// Get the selected value here
alert($styledSelect.text());
});
演示:Fiddle
答案 1 :(得分:0)
样式化的选择设置原始选择的值,因为这一行:
$this.val($(this).attr('rel'));
因此,您可以使用$("#selectbox1").val()
和$("#selectbox2").val()
获取样式选区的值,就像使用普通选择一样。