2013-07-10 25 views
2

所以我在一個正在開發的網站上進行了演示。我在Firefox中開發,但IE10是會議室計算機上的默認設置。我加載的第一頁有兩種選擇形式,一個用於輸入新人的按鈕或一個編輯現有人的按鈕(他們只是頁面重定向,實際工作稍後發生)在IE10中選擇一個無效的表單名稱?

他們沒有工作。

打開Firefox的頁面,他們工作得很好。 IE10中的其他每個按鈕都可以正常工作,只有那兩個。

我使用javascript來控制表單動作,並且所有的按鈕都有相同的動作,只是表單名稱和重定向是不同的。如果我改回

function handle_profile() 
{ 
    if(document.pressed == "new_instructor") 
     document.selection.action = "instructors.php?mode=new"; 
    if(document.pressed == "edit_instructor") 
     document.selection.action = "instructor_profile.php?mode=select"; 
} 

那麼它打破

function handle_profile() 
{  
    if(document.pressed == "new_instructor") 
     document.inst_act_choice.action = "instructors.php?mode=new"; 
    if(document.pressed == "edit_instructor") 
     document.inst_act_choice.action = "instructor_profile.php?mode=select"; 
} 

:這工作得很好。但它不會在Firefox中破解,或者如果我在兼容模式下使用IE10。沒有測試鉻等我找不到任何文件說,選擇是無效的表格名稱。

+0

什麼是'inst_act_choice'?這是一個CSS類嗎? –

+3

您在假設使用「document.selection」時是正確的。如果打開IE並啓動開發者工具(F12),則可以轉到控制檯並輸入'document.selection',以查看默認情況下是否爲MSSelection對象。微軟似乎有詳細信息[在這裏](http://msdn.microsoft.com/en-us/library/ie/ms535869(v = vs.85).aspx),包括事實上,它將遠離IE11兼容性原因。 – Mike

+0

@RobertHarvey它只是表單的名稱,它不是一個類或任何東西。教練行動選擇的簡稱。 –

回答

5

selectionperfectly valid form name,但它不可訪問爲document.selection,因爲document.selectionalready in use in IE

要做出清晰的跨平臺示例:想象一下,如果您的表單被命名爲getElementById。這也是一個完全有效的元素名稱,但您不應該期望它可以通過標識符document.getElementById訪問。

您可以改爲通過document.forms["my_form_id"]document.getElementById("my_form_id")通過ID訪問它。