1

私はこのHTMLを持っています:

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

click()したいです。HTML側では何も変更できません。するとgetElementById("submit").click()、次のようになります。

>>> document.getElementById("submit").click();
Cannot convert 'document.getElementById("submit")' to object

ヒントはありますか?

4

7 に答える 7

4

注: 「送信」フォームで何かを呼び出すことは絶対にしないでください。フォームの送信イベントをスクリプトから隠します。

ボタンにアクセスするには多くの方法があります

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]、最初の要素です

于 2015-04-24T11:23:18.500 に答える
1

を使用していますが、入力に属性getElementByIdがありません。idIEが名前空間を完全に混乱させ、属性をname属性のように扱うからといってid、そうすべきだという意味ではありません。

<input id="submit" ... />
...
document.getElementById('submit').click();
于 2010-12-31T17:48:44.287 に答える
1

私が見ることができる当面の問題はsubmit、入力に id を割り当てていないため、これは機能しません:

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

IDも指定しない限り:

<input id="submit" type="submit" name="submit" value="Invoeren" accesskey="s" class="buttons"/>
于 2010-12-31T17:49:13.433 に答える
1

実際の HTML を (id 属性を追加するために) 編集することはできず、これをクロスブラウザーにしたいので、すべての入力要素をループして、送信ボタンと一致するまで type および value 属性をチェックすることができます。

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();
}
于 2010-12-31T17:54:14.433 に答える
0

入力には id 属性がないため、id で取得できません。代わりにこれを使用してください。

<input id="submit" type="submit" name="submit" value="Invoeren" accesskey="s" class="buttons"/>
于 2010-12-31T17:49:17.013 に答える
0

ID が「submit」の要素はありません。「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 ...
于 2010-12-31T17:52:47.160 に答える
-1

jQuery を調べてみるとよいでしょう。それはすべてをとても簡単にします。

于 2010-12-31T17:47:21.633 に答える