确认框始终显示(javascript,jQuery,.Net)

时间:2010-06-10 09:24:10

标签: .net javascript jquery

我有一个jQuery-Script来完成以下任务:

  • 如果我的表单中的gridview包含具有特定id的行,则必须如此 标记为红色。
  • 必须弹出确认对话框,询问用户是否要这样做。

我构建了这段代码:

if (response == "EntryInList") {               
            $('#entryListContainer div table tbody tr').each(function() {                  
                if ($(this).attr('id') == 'entry_' + $('#<%= txtProductNumber.ClientID  %>').val()) {
                     $(this).css("color", "red");
                }
            }
            );

            if (!confirm("Entry already exists. Really overwrite?")) {
                jQuery('#<%= txtProductNumber.ClientID  %>').val('');
                jQuery('#<%= txtCount.ClientID  %>').val('');
                jQuery('#<%= txtProductNumber.ClientID  %>').focus();
                return false;
            }
        }

结果,首先弹出确认框,而不会将行变为红色。仅在那之后 使用盒子,它变成红色。如何让行一次变为红色?

我的另一个问题是确认框拒绝我的页面向下滚动。但 如果gridview比整个页面长,我想这样做。

1 个答案:

答案 0 :(得分:2)

在JavaScript代码完成执行并且confirm对话框为模态对话框之前,显示将不会更新,这将暂停所有脚本,直到对话框关闭。这意味着在关闭框之前,您不会看到对文档的任何更改,即使这些更改已经发生。

一个可行的解决方案可能是使用setTimeout(function () {}, 0)显示该框,但您可能需要稍微修改其他代码。