Javascript 选择选项默认值不起作用

Javascript 选择选项默认值不起作用,javascript,html,jsp,html-select,Javascript,Html,Jsp,Html Select,我的页面中有3个选择标签,我想为它们设置一个默认值。我找到了一种方法来做到这一点,它对其中一个有效,但对另一个无效。我在这里找不到问题。 我在这里得到我想要的值: String start =String.valueOf(rule.getStart()); String end =String.valueOf(rule.getEnd()); String numberOfCars = String.valueOf(rule.getNumberOfCars()); 我已经测试了这些值,它们是正确

我的页面中有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>

1.
2.
3.
4.
5.
6.
7.
8.
9
10
0
1.
2.
3.
4.
5.
6.
16
17
18
19
20
21
22
23
这里是我找到的函数。start的一个工作正常,但其他两个工作不正常,我找不到原因:

<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>

$(文档).ready(函数(){
如果(!$(“#结束时间选项:选中”).length)
$(“#结束时间选项[值=”)”).attr('selected','selected');
});
$(文档).ready(函数(){
如果(!$(“#numberOfCars选项:选中”)。长度)
$(“#numberOfCars选项[值=”)”.attr('selected','selected');
});
$(文档).ready(函数(){
如果(!$(“#开始时间选项:选中”).length)
$(“#startHour option[value=”)”).attr('selected','selected');
});

$(文档).ready(函数(){
如果(!$(“#结束时间选项:选中”).length)
$(“#结束时间选项[值=”)”).attr('selected',true);
});

如果我记性好的话,你应该这样做。你们应该把它们合并到同一个标签里。为什么要传播它们?

由于代码中存在错误,
startHour
select起作用

$(document).ready(function() {
 if (!$("#starHour option:selected").length)  //Notice its starHour not startHour
$("#startHour option[value='<%=start%>']").attr('selected', 'selected');
});
$(文档).ready(函数(){
if(!$(“#starHour选项:selected”).length//注意它的starHour不是startHour
$(“#startHour option[value=”)”).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>

$(文档).ready(函数(){
$(“#结束时间选项[值=”)”).attr('selected','selected');
$(“#startHour option[value=”)”).attr('selected','selected');
$(“#numberOfCars选项[值=”)”.attr('selected','selected');
});
下面是一个非常简单的示例,说明了基本问题,即默认情况下选择了一个选项

<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>