1

我的页面中有 3 个选择标签,我想为它们设置一个默认值。我搜索了一种方法来做到这一点,它适用于一个但不适用于另一个。我在这里找不到问题。我在这里得到了我想要的值:

String start =String.valueOf(rule.getStart());
String end =String.valueOf(rule.getEnd());
String numberOfCars = String.valueOf(rule.getNumberOfCars());

我已经测试了这些值,它们是正确的。这些是我的选择标签:

<select id="numberOfCars" name="numberOfCars">
            <option value="1">1</option>            
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="1">4</option>            
            <option value="2">5</option>
            <option value="3">6</option>
            <option value="1">7</option>            
            <option value="2">8</option>
            <option value="3">9</option>
            <option value="3">10</option>
        </select>

<select id="startHour" name="startHour">
            <option value="0">0</option>                    
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>   
        </select>
<select id="endHour" name="endHour" >
            <option value="16">16</option>
            <option value="17">17</option>
            <option value="18">18</option>
            <option value="19">19</option>
            <option value="20">20</option>
            <option value="21">21</option>
            <option value="22">22</option>
            <option value="23">23</option>
        </select>

这是我发现的功能。一个 for start 工作完美,但另一个 2 没有,我找不到原因:

<script type="text/javascript"> 
$(document).ready(function() {
  if (!$("#endHour option:selected").length)
$("#endHour option[value='<%=end%>']").attr('selected', 'selected');
});
</script>
<script type="text/javascript"> 
$(document).ready(function() {
 if (!$("#numberOfCars option:selected").length)
$("#numberOfCars option[value='<%=numberOfCars%>']").attr('selected', 'selected');
});
</script>
<script type="text/javascript"> 
$(document).ready(function() {
 if (!$("#starHour option:selected").length)
$("#startHour option[value='<%=start%>']").attr('selected', 'selected');
});
</script>
4

2 回答 2

0
<script type="text/javascript"> 
$(document).ready(function() {
  if (!$("#endHour option:selected").length)
$("#endHour option[value='<%=end%>']").attr('selected', true);
});
</script>

如果我没记错的话,你应该这样做。你应该将它们全部合并到同一个标签中。为什么要传播它们?

于 2013-04-24T09:18:12.633 回答
0

由于startHour代码中的错误,选择有效。

$(document).ready(function() {
 if (!$("#starHour option:selected").length)  //Notice its starHour not startHour
$("#startHour option[value='<%=start%>']").attr('selected', 'selected');
});

默认情况下,选择中的选项将设置为选中,这会导致条件块中的代码不执行。StartHour 执行是因为选择器中的错误导致值为 0。

尝试删除条件块:

<script type="text/javascript"> 
$(document).ready(function() {
     $("#endHour option[value='<%=end%>']").attr('selected', 'selected');
     $("#startHour option[value='<%=start%>']").attr('selected', 'selected');
     $("#numberOfCars option[value='<%=numberOfCars%>']").attr('selected', 'selected');
});
</script>

这是一个非常简单的示例,说明了基本问题,即默认选择了一个选项。http://jsfiddle.net/fVjzw/

于 2013-04-24T09:21:32.800 回答