@zzmaster

Как в Хроме отправить форму имеющую input name=submit?

Я столкнулся с совершенно диким поведением Google Chrome (версия Версия 39.0.2171.71 m но мне хотелось бы получить решение для всех версий, включая эту).

Пробую отправить форму:

<form method="post" id="form" accept-charset="UTF-8" action="/lalala">
<input type="submit"  />
<input type="text" name="submit" value="Post this" />
</form>

<script>
	setTimeout(function(){ 
		var forma = document.getElementById("form");
		console.log(forma.submit);
		forma.submit(); 
	},30000);
</script>


на что в дебаг окне печатается

<input type="text" name="submit" value="Post this">
Uncaught TypeError: object is not a function


то есть document.getElementById("form").submit является не функцией submit(), а инпутом!

Не меняя форму, можно как-то еще ее отправить?
  • Вопрос задан
  • 2346 просмотров
Решения вопроса 1
@BIG_bu
document.forms[0][0].click().
ну или более развернуто...
forma=document.getElementById("form");
submit = forma[0]; // 0 - индекс первого элемента в форме ну или еще как-нибудь изощренно можно поискать.
submit.click();


объект form имеет метод submit(), но создавая поле с зарезервированным именем "submit" ты переопределяешь его и теперь при обращении к форме по form.submit() он пойдет к текстовому полю, но текстовое поле не метод а объект. И обращаясь по form.submit ты получишь
<input type="text" name="submit" value="Post this" />
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы