jquery在html select中选择了选项

时间:2012-06-03 14:01:15

标签: jquery json

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

我试图通过jquery知道用户是否已经在我的html select元素中选择了一个选项。如果还没有,我会自动将所选值设置为第一个选项。但是,这不起作用。

我这样做的方式是否正确?

注意:当我通过$('#inputRoom').ready(....)加载select元素时,我用我从数据库中获得的数据填充我的select元素:

更新:它现在工作正常......欢乐和felix都是正确的...此外,我发现我的淘汰代码的定位也导致了一些问题...修复它...谢谢......

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>'); 
});

2 个答案:

答案 0 :(得分:1)

您可以使用$.val代替

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

注意

正如@Felix Kling在评论中所说,如果你没有任何空选项,那么你不需要这样做,默认情况下会选择第一个选项。

答案 1 :(得分: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/