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

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

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

NOTE: i am populating my select element with the data i obtain from a database when the select element is loaded through $('#inputRoom').ready(....):

更新:它现在工作正常......joy 和 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>'); 
});
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 回答