dwz手册上说combox设置value=xxx,代表选择项。实际应用中发现总是会显示第一项,打开dwz.combox.js代码:
1 var $this = $(this).removeClass("combox");
2 var name = $this.attr("name");
3 var value= $this.attr("value");
4 var label = $("option[value=" + value + "]",$this).text();
5 var ref = $this.attr("ref");
6 var param = $this.attr("param");
7 var cid = Math.round(Math.random()*10000000);
8 var select = '<div class="combox"><div > });
2 var name = $this.attr("name");
3 var value= $this.attr("value");
4 var label = $("option[value=" + value + "]",$this).text();
5 var ref = $this.attr("ref");
6 var param = $this.attr("param");
7 var cid = Math.round(Math.random()*10000000);
8 var select = '<div class="combox"><div > });
上面第3行用$this.attr("value");本意是想取出select里value属性值,但是对于select,$this.attr("value")取到的却是当前选择的option值,对于刚刚加载的select标签来说,这个值永远是第一个option的值,这也就导致了第13行中永远是第一个option加上了selected属性。
解决这个问题的办法也很简单,就是换一个属性。这里我用ShowValue属性示例,select这样写<select class="combox" ShowValue="abc" />,js中将$this.attr("value");改为$this.attr("showvalue")?$this.attr("showvalue"):$this.val();,这样就解决了combox的问题。