Вопрос

У меня есть этот 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. Это делает все так, намного проще.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top