我们在asp.net项目中使用YUI库。我有一个asp.net autopostback下拉列表,它被转换为YUI下拉列表,如下所示。现在,当用户从下拉列表中选择一些值时,页面会回发并且会触发SelectedGroupChanged事件,但在此之前不会出现确认对话框。我在这里做错了什么?
代码:
<asp:Button id="Groups" Enabled="false" runat="server" />
<asp:DropDownList ID="groupsDropDownList" runat="server" AutoPostBack="true" OnSelectedIndexChanged="SelectedGroupChanged" />
<script language="javascript" type="text/javascript">
var YUIGroupsDrpDown;
<%if (Groups.Visible)
{ %>
YUIGroupsDrpDown = new YAHOO.widget.Button("<%=Groups.ClientID %>",{type:"menu", menu: "<%=groupsDropDownList.ClientID %>"});
YUIGroupsDrpDown.set("label", "<%=groupsDropDownList.SelectedItem.Text%>" );
YUIGroupsDrpDown.getMenu().subscribe("click",onGroupsChange);
YUIGroupsDrpDown.on("click", {fn: TakeActions, obj: 'M'});
<%} %>
function onGroupsChange()
{
YUIGroupsDrpDown.set("label", YUIGroupsDrpDown.getMenu().activeItem.srcElement.text );
}
function TakeActions(event, action)
{
var message = 'some message'
if (window.confirm(strMsg) != 1)
return false;
else
return true;
}
答案 0 :(得分:0)
最后我找到了答案。实际上,YUI将自己的提交事件连接到autopostback下拉列表的表单。因此,如果用户选择取消他的操作,我们需要阻止这些YUI事件。所以要做到这一点,这是我从YUI的示例页面获得的代码:
var onExampleSubmit = function(p_oEvent) {
var bSubmit =
window.confirm("Are you sure you want to submit?")
if(!bSubmit) {
YAHOO.util.Event.preventDefault(p_oEvent);
}
};
YAHOO.util.Event.on(pageForm, "submit", onExampleSubmit);
希望这可以帮助任何使用autopostback下拉列表的用户在asp.net中确认消息。