美好的一天社区,
我有一个ASP.NET MVC4项目,在编辑页面我使用jquery脚本。但是我在页面上显示元素时遇到问题。
以下是我在更改前的下拉列表中的HTML标记:
<select id="ProgramId" name="ProgramId"><option value=""></option>
<option value="1">testrtu1</option>
<option value="2">testrtu2</option>
<option value="3">testtsi</option>
<option selected="selected" value="4">testrtu3</option>
</select>
这是在jquery改变之后
<select id="ProgramId" name="ProgramId"><option value=""></option>
<option value="1">testrtu1</option>
<option value="2">testrtu2</option>
<option selected="selected" value="4">testrtu3</option>
</select>
但是它显示在页面上而不是选定的元素testrtu3
,始终显示第一个元素。当我点击保存按钮保存我的第一个值。
这是我的jQuery
功能:
$(document).ready(function () {
var values = [];
$(".checkboxUniversities:checked").each(function () {
values.push($(this).val());
});
$.getJSON('/Administrator/ProgramList/' + values, function (data) {
alert('Return json result new information');
var items = '<option disabled>Select a Program</option>';
$.each(data, function (i, program) {
items += "<option value='" + program.Value + "'>" + program.Text + "</option>";
});
$('#ProgramId').html(items);
});
//var selectedElement = $("#ProgramId").find(":selected").text();
});
我想我需要以某种方式在dropdown
内创建我的jquery
时或创建后添加所选值,但我不知道如何。有人能帮助我吗?
答案 0 :(得分:0)
在向您的下拉列表中添加选项之前,您必须在变量中保存selected index
或text
并进一步使用。
示例代码:
<select id="ProgramId" name="ProgramId"><option value=""></option>
<option value="1">testrtu1</option>
<option value="2">testrtu2</option>
<option selected="selected" value="4">testrtu3</option>
</select>
<input id="click" type="button" value="click me"/>
$(document).ready(function(){
var option = '<option value="1">testrtu1</option><option value="2">testrtu2</option><option value="3">testtsi</option><option value="4">testrtu3</option>';
$("input#click").click(function(){
var selInx = $("select[name='ProgramId'] option:selected").index();
$('#ProgramId').html(option);
$('select#ProgramId').prop('selectedIndex', selInx);
});
});
的 DEMO FIDDLE 强>
注意:由于我们无法连接到您的后端代码以获取代码本身硬编码的选项,并且点击按钮下拉列表将替换为最新选项,并将根据第一个选项更新所选索引。您可以根据自己的要求使用selectedindex
或text
。