Проблема с именованием полей Javascript / HTML Form

Рассмотрим следующую простую форму:

<form method="GET" action="handle.php">
  <input type="hidden" name="action" value="search">
</form>

Отправка формы выполняется Javascript (iui) при вызове ajax. Все поля правильно собираются из формы. Javascript затем хочет отправить вызов ajax в « form.action ».

Здесь начинается моя проблема. Объект form имеет тип HTMLFormElement. action свойство формы должно иметь тип string и содержать "handle.php". После нескольких часов отладки я заметил, что form.action теперь имеет тип HTMLInputElement.

Мой вопрос: Это правильное поведение Javascript? Я бы никогда не подумал, что определение поля формы с именем атрибута формы, это произойдет. Тем временем я решил проблему, иначе назвав свое поле.

Заранее благодарю за любой совет ...


Нашел простой способ показать мою проблему. Сначала форма с проблемой:

<form action="test.php">
    <input type="hidden" name="action" value="test">
    <input type="button" onclick="alert(this.form.action);">
</form>

И правильная форма:

<form action="test.php">
    <input type="hidden" name="NOT_AN_ATTRIBUTE_NAME" value="test">
    <input type="button" onclick="alert(this.form.action);">
</form>

В первом всплывающем окне указано «[object HTMLInputElement]», во втором: «http: //localhost/test.php».

5
задан djBo 6 January 2011 в 14:15
поделиться