Javascript Dropdownlist不显示以前的值
我有一个asp.net dropdownlist控件,autopostback为false。 我已经编写了js代码来显示确认消息,同时下拉值也发生了变化Javascript Dropdownlist不显示以前的值,javascript,asp.net,Javascript,Asp.net,我有一个asp.net dropdownlist控件,autopostback为false。 我已经编写了js代码来显示确认消息,同时下拉值也发生了变化 function ConfirmAbsent(ddlPresence) { if (ddlPresence != null) { var myValue = ddlPresence.options[ddlPresence.selectedIndex].text; var blnAb
function ConfirmAbsent(ddlPresence) {
if (ddlPresence != null) {
var myValue = ddlPresence.options[ddlPresence.selectedIndex].text;
var blnAbsent = confirm("This will mark as "+ myValue +". Please confirm clicking OK.");
if (blnAbsent) {
return true;
}
else {
return false;
}
}
}
并将此属性添加到dropdownlist,如下所示
ddlUserPresence.Attributes.Add("onchange", "if (!ConfirmAbsent(" + ddlUserPresence.ClientID
+ ")) return; else __doPostBack('"
+ ddlUserPresence.UniqueID + "', '');");
当我点击ok按钮时,它会回发页面正常工作,但当我点击cancel按钮时,它不会显示以前的值,而是显示当前值
因此,当我单击“取消”按钮时,它会显示上一个值。请帮助。如果要防止事件发生,您应该
从事件处理程序返回false
:
ddlUserPresence.Attributes.Add("onchange", "return(ConfirmAbsent(" + ddlUserPresence.ClientID +"));");
您还传递了DropDownList
的ClientID,但没有使用它来查找控件。因此,您应该使用document.GetElementById
function ConfirmAbsent(ddlPresenceID) {
var ddlPresence = document.GetElementById(ddlPresenceID);
if (ddlPresence != null) {
请注意,您可以使用获取在服务器端为文本框设置的初始值。@akeseth:
AutoPostback
不是事件。只有当客户端处理程序返回true时,下拉列表才会使用AutoPostback=“true”
立即回发。因此,如果您从onchange
返回false
,下拉列表将不会回发。一旦onchange触发,就太晚了,无法阻止选择。您必须在onchange之前记住select并将其设置回原来的位置。如果您使用onclick或onfocus,您可以选择当前索引,这样当onchange触发时,您将拥有上一个选择。