0

Zend Framework 2を使用してアプリケーションを開発しており、2つの選択ボックスを使用しています。1つ目はデータベースからのデータが入力され、2つ目は空です。

ボタンをクリックして、選択したオプションを最初の選択から2番目の選択に(Javascript経由で)渡す後、最初の選択の無効属性「無効」に設定して、他のオプションを選択できないようにして、2番目の選択に渡します。

  //Whithin javascript function  
  var s = document.getElementById('firstSelect');
  s.setAttribute("disabled","disabled");

IE、Firefox、Safariではすべて正常に動作します(最初の選択から別のオプションに1つのオプションを渡した後、最初の選択は無効になり、グレー表示され、それ以上のオプションを選択することはできません)。Chromeでは動作しませ

最初の選択は他のすべてのブラウザと同様にグレー表示されますが、それでもユーザーは別のオプションを選択して他の選択ボックスに渡すことができます。これが発生すると、これ以上オプションを選択できなくなり、他のすべてのブラウザと同じように動作します。

なぜこれが起こるのか考えはありますか?

4

1 に答える 1

0

実際、クロムは正しいです。ID ( getElementById )に基づいて選択しています。これらはDOM ツリー内で一意でなければなりません。したがって、同じ ID を持つ要素が複数ある場合、Google はその 1 つだけを選択します。

2 つのオプションがあります: - getElementsByClassname を使用して要素をロードするようにコードを拡張します(これはまだ十分にサポートされていませんが、IIRC を使用するか、getElementsByTagnameを使用します) 。これは、後でループしてそれに応じて属性を設定できる配列を返します-jQuery(または他のフレームワーク)に入り、フレームワークにこれを解決させます(ほとんどのフレームワークには、まさにこれらのタイプの状況に対応する機能があります;))

成功..

ps: 要素同じ ' name ' 属性を持つことができますが、それは ' id 'とは異なります

于 2012-12-14T10:20:49.470 に答える