Javascript 选择选项有什么问题?

Javascript 选择选项有什么问题?,javascript,jquery,Javascript,Jquery,我只是尝试使用所选选项的值进行简单计算,但得到的结果是错误的: 拾取9和返回时间10,它给出否(必须是是) 但是拾取时间11和返回时间14,它给出了yea(这是正确的)因此它给出了正确的结果,有一些特定的数字,而有一些数字不是 以下是(拾取)选择选项: <select id="ophalenUur" class="timePicker selectOption"> <option value="-">Kies Tijd</option> <

我只是尝试使用所选选项的值进行简单计算,但得到的结果是错误的: 拾取9和返回时间10,它给出否(必须是是)

但是拾取时间11和返回时间14,它给出了yea(这是正确的)因此它给出了正确的结果,有一些特定的数字,而有一些数字不是

以下是(拾取)选择选项:

<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.:)是的,没错。当时我对它没有兴趣。。我改变了答案。谢谢你