2010-07-06 76 views
0

我的問題很煩人,可能是非常愚蠢的事情,但我一直在繞過它,並沒有找到解決方案。我在2個不同的頁面調用這個部分觀點:設置功能單擊單選按鈕在IE中不起作用

<div id="NotificationStatusSuspensionDiv">  
    <p> 
     <strong><%= Html.Label("Status :") %> </strong><br /> 

     <input type="radio" name="NotificationStatusSuspension" id="statusA" value="A" checked="checked" /> 
     <label for="statusA">Active</label> 
     <input type="radio" name="NotificationStatusSuspension" id="statusN" value="N" /> 
     <label for="statusN">Not Active</label> 
    </p> 
</div>  

的事情是,在外部JavaScript文件我做到這一點的document.ready方法:

$('input:radio[name="NotificationStatusSuspension"]').each(function() { 
    $(this).click(function() { 
      setNotificationStatus($(this)); 
    }); 
}); 

我已經看到了這工作得很好,當我點擊它單選按鈕加載對應於所選狀態的通知(即setNotificationSt atus)。問題是,當我的UI添加到單選按鈕這樣的:

$('#NotificationStatusSuspensionDiv').buttonset(); 

這一切的代碼,它工作在Firefox和Chrome完美的罰款,但在IE它不會做任何事情。就好像它不能識別鼠標點擊一樣。有趣的是,我在網站的另一部分或多或少具有相同的代碼,並且IE瀏覽器運行良好。您是否有任何線索?

+0

我不知道是否有幫助,但在這裏工作在我的IE8 - http://jsfiddle.net/Q2ueN/ – 2010-07-07 11:48:58

+0

是的,它適用於我在其他網頁是不是那一個,我不明白爲什麼0x – vikitor 2010-07-08 11:02:04

回答

1

我想嘗試的幾件事情:

在你的jQuery選擇,嘗試把引號的屬性相匹配:

$('input:radio[name="NotificationStatus"]') 

嘗試使用jQuery的each()方法,讓你的事件綁定像這樣:

$('input:radio[name="NotificationStatus"]').each(function(){ 
    $(this).click(function(){ 
    alert($(this).val()); 
    }); 
}); 

最後,嘗試使用字母數字和下劃線標識事物。第三個單選按鈕在ID名稱中有一個%符號,我不確定這是否是很好的做法。 IE瀏覽器可能會在看到這些時適合。 PS:爲了清晰(和標準),您可能希望刪除屬性中等號周圍的空格,並在自閉合斜線之前添加一個空格。例如,更改:

<input type="radio" name="NotificationStatus" id="statusA" value = "A" checked = "checked"/>

<input type="radio" name="NotificationStatus" id="statusA" value="A" checked="checked" />

+0

謝謝你的建議,這是非常感謝,但我的問題還沒有解決。我嘗試了你所說的,我刪除了頁面中第三個不正常工作的按鈕,以檢查是否有問題,但是現在我沒有收到其他兩個按鈕的任何內容(我之前沒有收到它無論如何)......爲什麼微軟希望在其他工作完美的時候強加他們的災難性標準...... – vikitor 2010-07-07 08:58:08