我的页面中有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>
以下是我找到的功能。一个开始工作完美,但另外两个没有,我找不到原因:
<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>
答案 0 :(得分:0)
<script type="text/javascript">
$(document).ready(function() {
if (!$("#endHour option:selected").length)
$("#endHour option[value='<%=end%>']").attr('selected', true);
});
</script>
如果我的记忆有用,你应该这样做。你应该将它们全部合并在同一个标签中。为什么要传播它们?
答案 1 :(得分:0)
由于代码中的错误,startHour
选择有效。
$(document).ready(function() {
if (!$("#starHour option:selected").length) //Notice its starHour not startHour
$("#startHour option[value='<%=start%>']").attr('selected', 'selected');
});
默认情况下,select中的选项将设置为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/