【问题标题】:Is selection an invalid form name in IE10?在 IE10 中选择一个无效的表单名称吗?
【发布时间】:2013-07-10 16:28:47
【问题描述】:

所以我在我正在开发的网站上做了一个演示。我在Firefox中开发,但IE10是会议室计算机上的默认设置。我加载的第一个页面有一个有两个选择的表单,一个输入新人的按钮,或者一个编辑现有人的按钮(它们只是页面重定向,实际工作稍后进行)

他们没有工作。

在 Firefox 中打开页面,它们工作得很好。 网站中的所有其他按钮在 IE10 中都可以正常工作,只有这两个。

我使用javascript来控制表单动作,所有的按钮都有相同的动作,只是表单名称和重定向不同。这很好用:

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";  
}

如果我把它改回

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";  
}

然后它就坏了。但它不会在 Firefox 中中断,或者如果我在兼容模式下使用 IE10。尚未测试 chrome 等。我找不到任何说明选择作为表单名称无效的文档。

【问题讨论】:

  • 什么是inst_act_choice?这是一个 CSS 类吗?
  • 您对使用“document.selection”的假设是正确的。如果你打开 IE 并启动开发者工具 (F12) 你可以去控制台输入document.selection 可以看到默认是一个 MSSelection 对象。微软似乎有详细信息here,包括出于兼容性原因它将在 IE11 中消失。
  • @RobertHarvey 这只是表单的名称,它不是一个类或任何东西。讲师行动选择的缩写。

标签: javascript html webforms internet-explorer


【解决方案1】:

selection 是一个perfectly 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 访问它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多