質問

私はこの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"

古いIESは名前を隠しているので、名前で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] 最初の要素です

あなたは使用しています getElementById しかし、あなたは持っていません id 入力の属性。 IEが名前空間と扱いを完全にfubしているからといって 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「送信」には要素がありません - 要素があります 名前が付けられました "参加する"。ディランが指摘しているように、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