нажмите () кнопку с именем "отправить" в Javascript
-
14-10-2019 - |
Вопрос
У меня есть этот HTML:
<input type="submit" name="submit" value="Invoeren" accesskey="s" class="buttons"/>
Я бы хотел щелкнуть по нему ().Я не могу ничего изменить на стороне HTML.Когда я это делаю getElementById("submit").click()
, Я понимаю это:
>>> document.getElementById("submit").click();
Cannot convert 'document.getElementById("submit")' to object
Какие-нибудь намеки?
Решение
Поскольку вы не можете редактировать фактический HTML-код (чтобы добавить атрибут id), и вы хотите, чтобы он был кроссбраузерным, вы могли бы перебирать все входные элементы и проверять атрибуты типа и значения, пока они не совпадут с вашей кнопкой отправки:
function get_submit_button() {
var inputs = document.getElementsByTagName('INPUT');
for(var i=0; i < inputs.length; i++) {
var inp = inputs[i];
if(inp.type != 'submit') continue;
if(inp.value == 'Invoeren' && inp.name == 'submit') {
return inp;
break; // exits the loop
}
}
return false;
}
function click_submit() {
var inp = get_submit_button();
if(inp) inp.click();
}
Другие советы
Примечание: никогда не звоните в форму «Отправить»! Он скрыт событие отправки формы от Script.
У вас есть много способов получить доступ к кнопке
document.querySelector("[name=submit]").click(); // first named button
document.querySelector("#form [name=submit]").click(); // in form with id="form"
Старые IES сдержит имя, чтобы вы могли использовать GetElementById на имя, но оно не рекомендуется.
Старые методы:
document.getElementsByName("submit")[0].click();
где 0 - первый элемент на странице с именем отправить.
document.forms[0].elements[0].click();
куда forms[0]
первая форма и elements[0]
это первый элемент
или же
document.getElementsByTagName("form")[0].elements[0].click();
куда ("form")[0]
первая форма на странице и elements[0]
это первый элемент
Ты используешь getElementById
Но у вас нет id
атрибут на ваш вход. Просто потому, что т.е. полностью задумывается над пространством имен и угощениями name
Атрибуты немного похожи id
Атрибуты не означает, что вы должны.
<input id="submit" ... />
...
document.getElementById('submit').click();
Непосредственная проблема, которую я вижу, заключается в том, что вы не назначили удостоверение личности submit
к вашему введению, так что это не сработает:
document.getElementById("submit").........
Если вы также не указаете идентификатор:
<input id="submit" type="submit" name="submit" value="Invoeren" accesskey="s" class="buttons"/>
Нет элемента с идентификатором "отправить" - у вас есть элемент названный "Разместить". Как указывает Дилан, jQuery облегчит все, но вы можете исправить это самостоятельно. Если вы не можете изменить HTML, сделайте что -то вроде этого:
var buttons = document.getElementsByTagName("submit");
for (var i=0; i < buttons.length; i++) {
var button = buttons[i];
if (button.getAttribute("name") === "submit") {
button.onclick = whatever ...
У вашего ввода нет атрибута идентификатора, поэтому его нельзя получить с помощью ID. Вместо этого используйте это.
<input id="submit" type="submit" name="submit" value="Invoeren" accesskey="s" class="buttons"/>
Вы можете захотеть заглянуть в jQuery. Это делает все так, намного проще.