Я пытаюсь отправить форму на событие клика изображения, но я получаю Uncaught TypeError: Object #<HTMLInputElement> has no method 'submit'
эту ошибку после пожара события клика.
Мой код:
<form name="searchRef" id="searchRef" method="get" action="#">
<input type="text" name="s" id="ref" value="" class="ref_search" />
<input type="submit" name="submit" id="ref_submit" value="GO" class="ref_submit" />
</span> <span> <img src="http://www.webdeveloper.com/forum/image.php?s=2c556ca62e6fd2a2e4d6ca925fb3fda1&u=8331&dateline=1057444055" alt="Go" onClick="document.getElementById('searchRef').submit();"> </span>
</form>
Любые идеи или предложения? Благодарю.
Вам необходимо удалить/изменить имя атрибута кнопки отправки, например:
name="btnSubmit"
В противном случае метод submit() элемента FORM перезаписывается.
Измените имя кнопки submit
от submit
до ref_submit
как показано ниже
<input type="submit" name="ref_submit" id="ref_submit" value="GO" class="ref_submit" />
Эта ошибка возникает из-за того, что ваш атрибут name
submit
, попробуйте изменить атрибут имени или попробовать код ниже.
<img src="http://www.webdeveloper.com/forum/image.php?s=2c556ca62e6fd2a2e4d6ca925fb3fda1&u=8331&dateline=1057444055" alt="Go" onclick='window.searchRef.submit();' />
На вашей странице, вероятно, уже есть элемент html с id=searchRef
, поэтому getElementById()
ошибается.
Лучшим решением было бы заменить кнопку отправки кнопкой ввода = изображение:
<input type="image" name="ref_submit" id="ref_submit" value="GO" class="ref_submit"
src="path/to/your/image" />
Обратите внимание, что это приведет к серверной стороне с помощью запроса POST с $_POST['submit_x']
и $_POST['submit_y']
(что соответствует координатам мыши (x, y) в левом верхнем углу изображения)
name="submit"
никогда не должно использоваться внутри элемента FORM
это всего лишь идея, но попробуйте использовать
document.forms["searchRef"].submit();
вместо
document.getElementById('searchRef').submit();
измените атрибут действия тега формы, repalce #
с page name say action.php
целевой page name say action.php
, а также добавьте onsubmit="javascript:return false"
в теге формы
submit
?