2013-07-10 33 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访问它。

相关问题