我有一个带有autopostback false的asp.net下拉列表控件。 我写了js代码,当下拉值改变时显示确认消息。
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;
}
}
}
并将此属性添加到下拉列表中,如下所示
ddlUserPresence.Attributes.Add("onchange", "if (!ConfirmAbsent(" + ddlUserPresence.ClientID
+ ")) return; else __doPostBack('"
+ ddlUserPresence.UniqueID + "', '');");
当我点击确定按钮时,它回发页面正常工作,但当我点击取消按钮时,它没有显示我之前的值而是显示当前值。
所以当我点击取消按钮时,它应该显示我之前的值。请帮助。
答案 0 :(得分:0)
如果要阻止事件,您应该从事件处理程序return false
:
ddlUserPresence.Attributes.Add("onchange", "return(ConfirmAbsent(" + ddlUserPresence.ClientID +"));");
您还传递了DropDownList
的ClientID,但您没有使用它来查找控件。所以你应该使用document.GetElementById
。
function ConfirmAbsent(ddlPresenceID) {
var ddlPresence = document.GetElementById(ddlPresenceID);
if (ddlPresence != null) {
请注意,您可以使用defaultValue
获取在TextBox的服务器端设置的初始值。