2

次のようなセレクターがあります。

<select id="patientSelect">
    <option disabled selected style='display: none;' id="patient0">
        Incoming Patients</option>
    <option id="patient1"></option>
    <option id="patient2"></option>
</select>

セレクターにプレースホルダータイプのテキスト(つまり、最初のオプション)が必要だったからです。そして、私のjavascriptを使用して、選択したオプションがpatient1で、ボタンをクリックすると、それが削除され、無効になっている「Incoming Patients」の表示に戻るようにしたかったのです。ジャバスクリプト:

$(".ui-btn").click(function(){
   remove();
   $('#patientSelect :selected').attr('selected', '0');
   $('#patientSelect').change();
});

function remove(){
   var x = document.getElementById("patientSelect");
   x.remove(x.selectedIndex);
}

問題は、常に複数のオプションが削除されることです。そのため、「patient2」を削除して remove() を実行しようとすると、リストが長い空白のリストになります。すべての助けに感謝します。あまり厳しくしないでください。:P

編集 申し訳ありませんが、基本的に、テキスト 'Incoming Patients' (セレクターの最初のオプション) を決して削除しないでください。「function remove()」を何回実行しようとしても。他のオプションは問題なく削除できますが、最初のオプションは削除できません。これは可能ではないかもしれませんが、よくわかりません..オプションなしでセレクターにテキストを取得する別の方法があれば、それも問題ありません:-)

たぶん次のようなものです:

function remove(){
   if(option != 1){
      var x = document.getElementById("patientSelect");
      x.remove(x.selectedIndex);
   }
}
4

2 に答える 2

1

試す

var $ps = $('#patientSelect');
$(".ui-btn").click(function () {
    var $sel = $ps.find('option:selected')
    if ($sel.index() > 0) {
        $sel.remove();
        $ps.val($ps.find('option:eq(0)').val())
    }
});

デモ:フィドル

于 2013-09-24T03:17:34.080 に答える
1

これを試すことができます。

$(".uibtn").click(function(){
   remove();
   $('#patientSelect').append("<option disabled selected style='display: none;' id='patient0'>Incoming Patients</option>");
   $('#patientSelect').change();
});

function remove(){
   var x = document.getElementById("patientSelect");
   x.remove(x.selectedIndex);
}

これをチェックしてくださいhttp://jsfiddle.net/7yR5V/

于 2013-09-24T03:21:25.810 に答える