0

代碼的背後,VB.NetJquery的消息幹活上IE 8和不工作的IE9

btnNext.Attributes.Add("onclick", "Confirmation(this,'" + GetLocalResourceObject("msg").ToString() + "')") 

.aspx頁

function Confirmation(source, msg) { 
    $(source).easyconfirm({ locale: { title: 'Confirm', text: msg} }); 
    $(source).click(function() { 
     var result = $(source).attr('tag'); 
     $('#<%=hidField.ClientID%>').val(result); 
    }); 
} 

Jquery的版 的jquery-1.4。 4.min.js jquery-ui-1.8.7.min.js

除此之外,我正在使用jquery.easy-confirm-dialog來顯示此消息框[是/否]。 jquery.easy - 確認 - 對話:http://www.projectshadowlight.org/jquery-easy-confirm-dialog/

hidField:參考代碼ASP網頁上面

在IE 8:消息框被顯示,並帶我到基於什麼我點擊相應頁面。 [是/否]。 hidField用於後面的代碼中以獲取yes/no的回覆並顯示相應的頁面。這在IE8中完美工作

在IE 9上:消息框不會顯示出來,它會帶我到一個頁面,就像我點擊了否。 hidField對於no的值爲零。所以如果沒有設置任何值,它會認爲我點擊了否,並執行它的代碼。

我在IE9上對它進行了調試,我發現該消息顯示爲[僅調試時],但它不會停止代碼的執行並等待用戶響應,然後繼續前進。當消息顯示時,它會繼續執行[調試模式,所以我能夠看到它]。並且由於默認值hidField爲0,它將重定向到相應的頁面。

任何建議/理由爲什麼會發生這種情況。除了上面提到的,還有其他的原因嗎? 任何可能的解決方案

更多信息: 我跑探查[F12 IE]在IE8和停止它一旦消息框出現,這表明event.stopImmediatePropagation獲取調用。

雖然在IE9上event.stopImmediatePropagation不是他們在profiler.I中調試過,而在jquery.easy-confirm-dialog.js文件中IE9 event.stopImmediatePropagation不可用,顯示爲undefined。

我添加了更高版本的Jquery,從1.8.2 [早期的1.4.4],但問題仍然是他們的。

+0

瀏覽器控制檯中的任何錯誤消息? (IE8或IE9) – Spudley

+0

沒有錯誤消息 – user2647784

回答

1

我不知道爲什麼你會遇到這個問題,我試過用IE9在http://www.projectshadowlight.org/jquery-easy-confirm-dialog/上的例子,它們按預期工作。然而,當你使用插件接口有點奇怪,容易確認的對話框與jQuery綁定事件一起使用時會發揮它的魔力。沒有直接從點擊事件中調用,就像你的例子。我會建議把所有的邏輯到這樣的(僞代碼)一個jQuery結合事件

btnNext.Attributes.Add("class", "confirmation"); 
btnNext.Attributes.Add("title", GetLocalResourceObject("msg").ToString()); 

而且地方把這個腳本中的標籤在你的頭

$(".confirmation").easyconfirm(); 
$(".confirmation").click(function() { 
    var result = $(this).attr('tag'); 
    $('#<%=hidField.ClientID%>').val(result); 
}); 

或者創建自定義函數顯示確認對話框

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, 
    }); 
}