我已经有这个问题很长时间了,现在我试图通过DropDownList从一个人获得用户输入。它似乎第一次工作(在回发之后)。但是当我试图让用户从DropDownList中选择一个新值时,它似乎默认回到我以前选择的值。我的问题是如何获得JavaScript代码重新分配变量到当前新选定的值。如果我做回发,它似乎工作,因为它被刷新。不过,我不想每次都做回传。如何重置变量和重建DropDownList而不使用回发
这里是我的javascript代码:
function getCaseFiles(canMoveExpenses) {
//create Popup with content from div
$('#ddlFiles').dialog({
autoOpen: true,
height: 'auto',
width: 'auto',
modal: true,
buttons: {
"Ok": function() {
debugger;
var dropDownList = document.getElementById("ddlCaseFilesNew");
var newCaseDdl = dropDownList.options[dropDownList.selectedIndex].value;
//alert("newCaseDdl = " + newCaseDdl);
var oldCaseFile = $("#hidCaseFile").val();//<asp:HiddenField id="hidCaseFile">
//alert(oldCaseFile);
if (newCaseDdl != -1) {
moveCasefile(canMoveExpenses, newCaseDdl, oldCaseFile);
$(this).dialog('close');
$("#viewExpensesGrid").flexReload();
}
else {
showMessage("Error. Please Select a Value From The Lists.");
}
},
Cancel: function() {
$(this).dialog('close');
$("#viewExpensesGrid").flexReload();
}
}
});
}
这里是我的DropDownList格:
<div id="ddlFiles">
<label>
Select new CaseFile:</label>
<asp:DropDownList runat="server" ID="ddlCaseFilesNew" DataSourceID="dsCaseFiles"
DataTextField="Display" DataValueField="FileID"
OnPreRender="ddl_PreRender" Width="300px"/>
</div>
我的函数调用这个div并将其放在一个自定义弹出里面。
似乎我包含selectedIndex的变量不是正在更新,如果它不是回发。
我会尽快尝试,让你知道结果。谢谢,但这个信息 – user1084319
会这样工作,你列出的问题:var dropDownList = document.getElementById $(“#<%= ddlCaseFilesNew.ClientID%>”);? – user1084319
它应该工作,但只有当你的JS代码在ASPX文件。 – Smileek