0

デモ アカウントのタブ メニュー ページの [送信] ボタンを無効にしようとしています。残念ながら、3 つのメニュー タブのそれぞれに同じボタン ID 'Mod0EditRecord' があります。オンラインデータベースによってレンダリングされるため、ボタンIDの名前を変更したり、代わりにクラスを使用したりすることはできません。

<input type="submit" value="Update" name="Mod0EditRecord" id="Mod0EditRecord">
<input type="submit" value="Update" name="Mod0EditRecord" id="Mod0EditRecord">
<input type="submit" value="Update" name="Mod0EditRecord" id="Mod0EditRecord">

次のように、最初のボタンの属性を無効に設定できます

if (login == 'demo.account')
{
document.getElementById('Mod0EditRecord').setAttribute("disabled","disabled");
document.write("<br><p style=\"text-align:left; padding-left:100px; font-size:10px;\">** Update button is disabled for the demo **</p>");
} 
else
{
document.getElementById('Mod0EditRecord').removeAttribute("disabled");
}

他の 2 つの属性を設定する方法についてのガイダンスを探しています。

前もって感謝します

4

3 に答える 3

0

document.getElementById の戻り値は配列である必要があります。そして、あなたはそれらを横断することができます。

var elem = document.getElementById('Mod0EditRecord');
    for(var i = 0; i < elem.length; i++)
    {
      elem[i].setAttribute("disabled","disabled");
    }

または、jquery を使用している場合は、.next() メソッドを使用して他の 2 つの要素を取得できます。

于 2013-03-08T06:34:26.953 に答える
0

document.getElementByIdは、その ID を持つ最初の要素を返すため、使用できません。VanillaJS を使用している場合は、jQuery を使用しません。この機能のためだけにライブラリをダウンロードするのはほとんど役に立たないからです。

これがあなたがすることです:document.getElementsByTagNameすべてのinput-types を取得するために使用し、それが from であるかどうかを確認type submitdisableます。

var inputs = document.getElementsByTagName('input');
for(var i = 0; i < inputs.length; i++ ) {
    if(inputs[i].type === "submit") {
        var submitbtn = inputs[i];
        submitbtn.setAttribute("disabled", "disabled");
    }
}

JSFiddle

于 2013-03-08T07:47:57.557 に答える
0

jQueryなどの JavaScript dom 操作ライブラリを使用して、HTML ノードをトラバースし、必要に応じてクラスを追加したり、ID を変更したりできます。

特にこれらの属性に固執する必要がある場合は、jQuery で次のようにすることができます。

$('input[name="Mod0EditRecord"]').eq(0).attr('disabled','disabled') 
//this is the first input, change .eq(index) to the value you need
于 2013-03-08T06:24:00.587 に答える