在Javascript中单击()一个名为“submit”的按钮

时间:2010-12-31 17:46:05

标签: javascript javascript-events javascript-objects

我有这个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

任何提示?

7 个答案:

答案 0 :(得分:3)

注意:永远不要在表单中调用任何内容&#34;提交&#34;!它将从脚本中隐藏表单的提交事件。

您可以通过多种方式访问​​按钮

document.querySelector("[name=submit]").click(); // first named button

document.querySelector("#form [name=submit]").click(); // in form with id="form"

旧的IE会影响名称,因此您可以在名称上使用getElementById,但不建议这样做。

旧方法:

document.getElementsByName("submit")[0].click();

其中0是名为submit的页面上的第一个元素。

document.forms[0].elements[0].click(); 

其中forms[0]是第一个表单,elements[0]是第一个表单

document.getElementsByTagName("form")[0].elements[0].click(); 

其中("form")[0]是页面上的第一个表单,elements[0]是第一个元素

答案 1 :(得分:1)

您使用的是getElementById,但输入中没有id属性。仅仅因为IE完全满足命名空间并将name属性视为id属性,并不意味着你应该这样做。

<input id="submit" ... />
...
document.getElementById('submit').click();

答案 2 :(得分:1)

我可以看到的直接问题是您没有为您的输入分配ID submit,所以这不起作用:

document.getElementById("submit").........

除非您同时指定ID:

<input id="submit" type="submit" name="submit" value="Invoeren" accesskey="s" class="buttons"/>

答案 3 :(得分:1)

由于您无法编辑实际的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();
}

答案 4 :(得分:0)

您的输入没有id属性,因此无法通过ID检索。请改用它。

<input id="submit" type="submit" name="submit" value="Invoeren" accesskey="s" class="buttons"/>

答案 5 :(得分:0)

没有ID为“提交”的元素 - 您有一个名为“submit”的元素。正如Dylan指出的那样,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 ...

答案 6 :(得分:-1)

你可能想看看jQuery。它使一切变得如此简单。