我有这个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();
}

其他提示

注意:切勿以“提交”形式称呼任何内容!它将从脚本中隐藏表单的提交事件。

您有许多访问按钮的方法

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是页面命名提交的第一个元素。

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

在哪里 forms[0] 是第一个形式, elements[0] 是第一个元素

或者

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

在哪里 ("form")[0] 是页面上的第一个表格, elements[0] 是第一个元素

您正在使用 getElementById 但是你没有 id 输入上的属性。仅仅因为IE完全符合命名空间和待遇 name 属性有点像 id 属性并不意味着您应该。

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

我可以看到的直接问题是您尚未分配ID submit 要输入,因此这将行不通:

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

除非您也指定ID:

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

ID“提交”没有元素 - 您有一个元素 命名 “提交”。正如迪伦(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 ...

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

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

您可能想研究jQuery。它使一切变得如此容易。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top