Javascript IE9确认对话框未等待用户输入,回发未经用户输入

Javascript IE9确认对话框未等待用户输入,回发未经用户输入,javascript,jquery,ajax,internet-explorer-8,internet-explorer-9,Javascript,Jquery,Ajax,Internet Explorer 8,Internet Explorer 9,代码隐藏 btnNext.Attributes.Add("onclick", " return Confirmation(this,'" + GetLocalResourceObject("msg").ToString() + "'); ") .ASPX页面[在javascript标记内] function Confirmation(source, msg) { var dialog = '<div class="dialog confirm">' + msg + '&l

代码隐藏

btnNext.Attributes.Add("onclick", " return Confirmation(this,'" +  GetLocalResourceObject("msg").ToString() + "'); ")
.ASPX页面[在javascript标记内]

function Confirmation(source, msg) {
    var dialog = '<div class="dialog confirm">' + msg + '</div>';
    var buttons = {};
    buttons['Yes'] = function() {
        $(this).dialog('close');
        var result = $(source).attr('tag');
        $('#<%=hidField.ClientID%>').val(result);
    };
    buttons['No'] = function() {
        $(this).dialog('close');
    };

    $(dialog).dialog({
        autoOpen: true,
        resizable: false,
        draggable: true,
        closeOnEscape: true,
        width: 'auto',
        buttons: buttons,
        title: 'Are you sure?',
        modal: true,
    });
}
功能确认(来源,消息){
var对话框=“”+msg+“”;
var按钮={};
按钮['Yes']=函数(){
$(this.dialog('close');
var result=$(source.attr('tag');
$('#').val(结果);
};
按钮['No']=函数(){
$(this.dialog('close');
};
$(对话框).dialog({
自动打开:对,
可调整大小:false,
真的,
closeOnEscape:没错,
宽度:“自动”,
按钮:按钮,
标题:“你确定吗?”,
莫代尔:是的,
});
}
当我点击按钮时,对话框打开,但是即使没有任何用户输入,也会发生回发。[单击对话框上的是/否]


在用户单击对话框上的“是/否”之前防止回发的任何方法。[IE9]

您的对话框有点像
异步
,因为函数
确认
会立即返回。 因此,您无法返回用户是否立即单击是或否

我建议如下:

  • 使您的
    ASP runat=“server”
    按钮不可见(
    显示:无;
  • 将新的
    客户端按钮
    放在同一位置
  • 单击客户端按钮,调用
    确认
  • 作为在对话框中选择
    yes
    的回调,触发单击不可见的
    ASP按钮
  • 这可能是在用户无法直接调用回发的情况下对回发进行编程控制的最简单方法

    选择
    Yes
    时触发回发将如下所示:

    buttons['Yes'] = function() {
        $(this).dialog('close');
        var result = $(source).attr('tag');
        $('#<%=hidField.ClientID%>').val(result);
        $('#<%=btnNext.ClientID%>').click();
    };
    
    按钮['Yes']=函数(){
    $(this.dialog('close');
    var result=$(source.attr('tag');
    $('#').val(结果);
    $('#')。单击();
    };
    
    您正在显示的代码中没有任何内容可以回发。。。表格在哪里?