Javascript 选择选项有什么问题?
我只是尝试使用所选选项的值进行简单计算,但得到的结果是错误的: 拾取9和返回时间10,它给出否(必须是是) 但是拾取时间11和返回时间14,它给出了yea(这是正确的)因此它给出了正确的结果,有一些特定的数字,而有一些数字不是 以下是(拾取)选择选项:Javascript 选择选项有什么问题?,javascript,jquery,Javascript,Jquery,我只是尝试使用所选选项的值进行简单计算,但得到的结果是错误的: 拾取9和返回时间10,它给出否(必须是是) 但是拾取时间11和返回时间14,它给出了yea(这是正确的)因此它给出了正确的结果,有一些特定的数字,而有一些数字不是 以下是(拾取)选择选项: <select id="ophalenUur" class="timePicker selectOption"> <option value="-">Kies Tijd</option> <
<select id="ophalenUur" class="timePicker selectOption">
<option value="-">Kies Tijd</option>
<option value="8">08.00</option>
<option value="8.5">08.30</option>
<option value="9">09.00</option>
<option value="9.5">09.30</option>
<option value="10">10.00</option>
<option value="10.5">10.30</option>
<option value="11">11.00</option>
<option value="11.5">11.30</option>
<option value="12">12.00</option>
<option value="12.5">12.30</option>
<option value="13">13.00</option>
<option value="13.5">13.30</option>
<option value="14">14.00</option>
<option value="14.5">14.30</option>
<option value="15.">15.00</option>
<option value="15.5">15.30</option>
<option value="16">16.00</option>
<option value="16.5">16.30</option>
<option value="17">17.00</option>
<option value="17.5">17.30</option>
<option value="18">18.00</option>
<option value="18.5">18.30</option>
<option value="19">19.00</option>
<option value="19.5">19.30</option>
<option value="20">20.00</option>
</select>
小提琴:
这里怎么了?我找了好几个小时,但我看不到:/,因为您正在进行字符串比较
var pickUp = 0;
var returnTime = 0;
var totalExtra = 0;
$('#ophalenUur').change(function () {
//conver the value string to number by prfixing it with + or you can use parseFloat(this.value)
pickUp = +this.value;
$('.pickUp').text("PickUp: " + pickUp);
});
$('#inleverenUur').change(function () {
returnTime = +this.value;
$('.returntime').text("return: " + returnTime);
if (returnTime > pickUp) {
alert("yea");
} else {
alert("no");
}
});
演示:因为您正在进行字符串比较
var pickUp = 0;
var returnTime = 0;
var totalExtra = 0;
$('#ophalenUur').change(function () {
//conver the value string to number by prfixing it with + or you can use parseFloat(this.value)
pickUp = +this.value;
$('.pickUp').text("PickUp: " + pickUp);
});
$('#inleverenUur').change(function () {
returnTime = +this.value;
$('.returntime').text("return: " + returnTime);
if (returnTime > pickUp) {
alert("yea");
} else {
alert("no");
}
});
演示:我认为原因可能是返回时间和拾取字符串。所以“9”>“10”。
尝试使用parseFloat函数来解析returnTime和pickUp。我认为原因可能是returnTime和pickUp是string。所以“9”>“10”。
尝试使用parseFloat函数来解析returnTime和pickUp。您将整数作为字符串进行比较。您可以使用
parseFloat
方法
var pickUp = 0;
var returnTime =0;
var totalExtra = 0;
$('#ophalenUur').change(function() {
pickUp = $('#ophalenUur option:selected').val();
$('.pickUp').text("PickUp: " + pickUp);
});
$('#inleverenUur').change(function() {
returnTime = $('#inleverenUur option:selected').val();
$('.returntime').text("return: " + returnTime);
if(parseFloat(returnTime) > parseFloat(pickUp)){
alert("yea");
}else{
alert("no");
}
});
代码:
var pickUp = 0;
var returnTime =0;
var totalExtra = 0;
$('#ophalenUur').change(function() {
pickUp = $('#ophalenUur option:selected').val();
$('.pickUp').text("PickUp: " + pickUp);
});
$('#inleverenUur').change(function() {
returnTime = $('#inleverenUur option:selected').val();
$('.returntime').text("return: " + returnTime);
if(parseFloat(returnTime) > parseFloat(pickUp)){
alert("yea");
}else{
alert("no");
}
});
您正在将整数作为字符串进行比较。您可以使用
parseFloat
方法
var pickUp = 0;
var returnTime =0;
var totalExtra = 0;
$('#ophalenUur').change(function() {
pickUp = $('#ophalenUur option:selected').val();
$('.pickUp').text("PickUp: " + pickUp);
});
$('#inleverenUur').change(function() {
returnTime = $('#inleverenUur option:selected').val();
$('.returntime').text("return: " + returnTime);
if(parseFloat(returnTime) > parseFloat(pickUp)){
alert("yea");
}else{
alert("no");
}
});
代码:
var pickUp = 0;
var returnTime =0;
var totalExtra = 0;
$('#ophalenUur').change(function() {
pickUp = $('#ophalenUur option:selected').val();
$('.pickUp').text("PickUp: " + pickUp);
});
$('#inleverenUur').change(function() {
returnTime = $('#inleverenUur option:selected').val();
$('.returntime').text("return: " + returnTime);
if(parseFloat(returnTime) > parseFloat(pickUp)){
alert("yea");
}else{
alert("no");
}
});
您正在比较文本,而不是在浮点中解析它们并检查条件您正在比较文本,而不是在浮点中解析它们并检查条件只是为了澄清,为什么您使用
+this.value
而不是parseFloat(this.value)
?@zahorak它短了9个字符:)。。也谢谢你在我的评论中引入parseFloat(),我说parseInt()是的,这是真的,我只是想知道这是一种好的风格还是一种“肮脏的”hack@user2045937请参见@zahorak,它是一元加号运算符。。。请参阅以获得澄清,为什么要使用+this.value
而不是parseFloat(this.value)
?@zahorak它缩短了9个字符:)。。也谢谢你在我的评论中引入parseFloat(),我说parseInt()是的,这是真的,我只是想知道这是一种好的风格还是一种“肮脏的”hack@user2045937请参见@zahorak,它是一元加号运算符。。。看,我宁愿使用parseFloat()。尝试选择12.00和12.30.:)是的,没错。当时我对它没有兴趣。。我改变了答案。无论如何,谢谢你,我宁愿使用parseFloat()。尝试选择12.00和12.30.:)是的,没错。当时我对它没有兴趣。。我改变了答案。谢谢你