我正在使用
@Html.DropDownListFor(x => x.Selects, new SelectList(Model.Selects, "Value", "Text", Model.Select), "Select"})`
下拉列表显示美国各州名单。我正在展示的文字是AL Alabama,CA California,NY New York等....见下文
<option value="AL">AL Alabama</option>
<option value="CA">CA California</option>
<option value="NY">NY New York</option>
....
value属性具有州缩写。我想要实现的是,当用户做出选择时,UI上的选定值应显示状态缩写而不是状态名称。目前它显示缩写状态名称。谁能帮我?
答案 0 :(得分:1)
最简单的解决方案是简单地使用您的Value属性两次(作为选项的值和内部文本):
@Html.DropDownListFor(x => x.Selects,
new SelectList(Model.Selects, "Value", "Value", Model.Select), "Select"})
如果您首先要显示州名称,然后只有在选择用户后将其更改为州名称,您应该通过Javascript处理此问题。
要通过Javascript执行此操作,您应首先设置下拉列表的ID并指定相应的onChange
函数:
@Html.DropDownListFor(x => x.Selects,
new SelectList(Model.Selects, "Value", "Text", Model.Select), "Select"},
, new {@id="selectListId" onchange = "setText(this)"})
然后实现你的功能:
function setText(sel) {
var selectedItem = sel.options[sel.selectedIndex];
selectedItem.text = selectedItem.value;
//or
//$("#selectListId option:selected").text(selectedItem.value);
}