Рассмотрим следующую простую форму:
<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».