2013-07-10 4 views
2

Итак, я сделал демонстрацию на работе на веб-сайте, который я разрабатываю. Я развиваюсь в Firefox, но IE10 по умолчанию используется на компьютере конференц-зала. На первой странице, которую я загружаю, есть форма с двумя вариантами: кнопка для ввода нового человека или кнопка для редактирования существующего лица (это только переадресация страницы, фактическая работа происходит позже)Выбирает недопустимое имя формы в 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 в режиме совместимости. не тестировали хром и т. д. Я не могу найти документацию, указывающую, что выбор недопустим как имя формы.

+0

Что такое 'inst_act_choice'? Это класс CSS? –

+3

Вы правы в своем предположении, что это использование «document.selection». Если вы откроете IE и запустите инструменты разработчика (F12), вы можете перейти на консоль и ввести 'document.selection', чтобы увидеть, что по умолчанию это объект MSSelection. У Microsoft, похоже, есть подробности [здесь] (http://msdn.microsoft.com/en-us/library/ie/ms535869 (v = vs.85) .aspx), включая тот факт, что он будет уходить для IE11 для причинам совместимости. – Mike

+0

@RobertHarvey это просто имя формы, это не класс или что-то еще. короткий для выбора действия инструктора. –

ответ

5

selection является perfectly valid form name, но это не так доступны, как document.selectiondocument.selection, потому что это already in use in IE.

Чтобы сделать простой кросс-платформенный пример: представьте, была ли ваша форма названа getElementById. Это совершенно правильное имя элемента, но вы не должны ожидать, что он будет доступен через идентификатор document.getElementById.

Вы можете получить доступ к нему по ID через document.forms["my_form_id"] или document.getElementById("my_form_id").

Смежные вопросы