1

データベースから無効なテキストボックスの配列を取得しました。編集ボタンをクリックすると、配列されているすべてのテキストボックスが有効になります。しかし、最初のテキストボックスしか有効にできませんでした。これがコードです。

編集ボタンのコード:

<input type="button" value="Edit" onclick="enable();" />

関数enable()

function enable(){
document.getElementById("instance_name").disable = false;
document.getElementById("host_name").disable = false;
}

配列:

$result=mysql_query("SELECT user_instance.instance_name, user_instance.host_name FROM
dba_account, user_instance WHERE dba_account.account_id = user_instance.account_id AND 
dba_account.account_id = '$accid'");

while($note = mysql_fetch_array($result))
{
<inut type='text' name='instance_name' id='instance_name' disabled='disabled' 
value='$note[instance_name]' size='25' />
<input type='text' name='host_name' id='host_name' disabled='disabled' 
value='$note[host_name]' size='25' />
}

無効になっているすべてのテキストボックスを取得していますが、すべてを無効にすることはできません。あなたの助けに感謝。

4

1 に答える 1

1

複数の要素に同じIDを与えています。各IDは1つの要素にのみ一意であるため、javascriptが最初のIDを見つけると、それは停止します。代わりにそれを与えてから、class="instance_name"代わりにクラスごとに要素を取得します。あなたはこのようなことをすることができます:

function enable(){
    Array.prototype.forEach.call( document.getElementsByClassName('instance_name'), 
                                  function(element){
                                      element.removeAttribute('disabled');
                                  });
}
于 2012-06-29T18:30:30.317 に答える