Метод формы значения по умолчанию IE7, “ДОБИРАЮТСЯ”. Как я могу сказать, вводится ли это пользователями или значение по умолчанию?

Если пользователь создает форму без атрибута метода, кажется, что большинство браузеров обработает это во время представления формы. Таким образом после контроля элемента формы после того, как DOM готов, Вы видите, что нет никакого "метода" attr объекта элемента формы.

IE7, однако, по-видимому, устанавливает значение метода по умолчанию, "ДОБИРАЮТСЯ" на всех формах без значения метода. Я не хочу спорить об или ДОБИРАТЬСЯ, или POST является самым разумным значением по умолчанию, я просто хочу найти способ сделать POST методом формы по умолчанию через все браузеры.

Моя проблема состоит в том, что я не могу сказать, ввел ли пользователь "ПОЛУЧИТЬ" значение для метода формы, или если IE ввел то значение как значение по умолчанию. Если нет никакого атрибута метода формы, очевидно, что пользователи не указывали один, таким образом, я могу безопасно принять значение по умолчанию он к POST. Но если я вижу ПОЛУЧИТЬ значение для метода формы, я не могу сказать, указал ли пользователь, что, или если это оставили черным и набор IE7, ДОБИРАЮТСЯ, когда это проанализировало HTML.

У кого-либо есть какие-либо идеи?

7
задан Matthew Taylor 8 February 2010 в 23:43
поделиться

2 ответа

Поведение ИЭ корректно ! (*) Согласно DTD:

method      (GET|POST)     GET       -- HTTP method used to submit the form--

или, в XHTML DTD:

method      (get|post)     "get"

это означает, что если атрибут метод опущен, то форма не только подается как GET по умолчанию, но и DOM на самом деле должен содержать Attr узел для метода с значением DTD по умолчанию GET.

(*: ну, вроде того. IE использует нижний регистр XHTML по умолчанию в HTML-документе, где он должен быть верхним регистром. Не то, чтобы это действительно имело значение, так как атрибут в любом случае не чувствителен к регистру в HTML. И эй! Это IE получает стандартную более правдивую версию, чем все другие браузеры. Это чудо!)

Так как же сказать, что узел Attr был помещен туда из-за атрибута DTD по умолчанию, а не из-за того, что он был в исходном тексте? С флагом DOM Level 1 Core specified flag:

var form= document.getElementById('myform');
var attr= form.getAttributeNode('method');
var isomitted= attr===null || !attr.specified;
17
ответ дан 6 December 2019 в 10:50
поделиться

Похоже, это не является нарушением спецификации формы HTML , которая гласит:

Этот атрибут указывает, какой метод HTTP будет использоваться для отправки набора данных формы . Возможные (без учета регистра) значения : get (по умолчанию) и "post". Информацию об использовании см. В разделе отправки формы

1
ответ дан 6 December 2019 в 10:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: