-1
      if ($('#inputRoom option:selected').text() == null || $('#inputRoom option:selected').text() == "")          
       {
         $('#inputRoom option').eq(0).attr('selected', 'selected');
       }

ユーザーがHTML select要素でオプションをすでに選択しているかどうかをjqueryで知りたいと思っています。まだ何もない場合は、選択した値を最初のオプションに自動的に設定します。ただし、これは機能していません。

私のやり方は正しいですか?

注:select要素がロードされたときにデータベースから取得したデータをselect要素に入力しています $('#inputRoom').ready(....)

更新:現在は正常に動作しています...ジョイとフェリックスの両方が正しいです...さらに、ノックアウトコードの配置が問題を引き起こすこともわかりました...修正しました..ありがとう...

var trueData = JSON.stringify(data).substring(10, (JSON.stringify(data).length - 2));
var rooms = trueData.split(',');
$('#inputRoom').empty();
$.each(rooms, function (index, value) { 
  $('#inputRoom')
    .append('<option value="' + value.substring(1, value.length - 1) + '">' + 
       value.substring(1, value.length - 1) + '</option>'); 
});
4

2 に答える 2

1

代わりに$.valを使用できます

  if (!$('#inputRoom').val())          
   {
     $('#inputRoom option:first').attr('selected', 'selected');
   }

ノート

@Felix Kling がコメントで言ったように、空のオプションがない場合、これを行う必要はありません。最初のオプションがデフォルトで選択されます。

于 2012-06-03T14:02:56.937 に答える
0
$(function(){    

   if (($("#inputRoom").val()=="") ||($("#inputRoom").val()=="0") )
   {
       $('#inputRoom option').eq(1).attr('selected', 'selected');
   }       
});

SELECTあなたの要素がこのようなものであると仮定します

<select id="inputRoom">
    <option value="0" selected></option>
    <option value="1">1</option>
    <option value="2" >3</option>   
</select>

作業サンプルhttp://jsfiddle.net/fDJW3/7/

于 2012-06-03T14:08:18.160 に答える