diff --git a/frame.js b/frame.js index 6d4ed721..36c7b7fb 100644 --- a/frame.js +++ b/frame.js @@ -195,7 +195,14 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, _list.push(mdb.PREV, mdb.NEXT) break default: - var item = can.core.SplitInput(list[i], html.BUTTON); item.action && (function() { + var item = can.core.SplitInput(list[i], html.BUTTON); + if (item.type == html.SELECT) { + item._init = function(target) { + target.value = item.value + target.onchange = function(event) { can.run(event) } + } + } + item.action && (function() { item._init = function(target) { can.onappend.figure(can, item, target) } })(), item.type == html.BUTTON? _list.push(list[i]): _list.push(item) } diff --git a/lib/core.js b/lib/core.js index ec473ec2..025759ca 100644 --- a/lib/core.js +++ b/lib/core.js @@ -182,7 +182,18 @@ Volcanos("core", {help: "数据结构", switch (ls[i]) { case ":": res[mdb.TYPE] = ls[i+1]; break case "=": - if (res[mdb.TYPE] == html.SELECT) { res["values"] = this.Split(ls[i+1]) } else { res["value"] = ls[i+1] } + if (res[mdb.TYPE] == html.SELECT) { + res.values = this.Split(ls[i+1]) + for (var i = 1; i < res.values.length; i++) { + if (res.values[0] == res.values[i]) { + res.value = res.values[0] + res.values = res.values.slice(1) + break + } + } + } else { + res.value = ls[i+1] + } break case "@": res[ctx.ACTION] = ls[i+1]; break }