0

我有一个输入,您可以在其中输入值,它会被检查,如果它大于 if 语句中的数字,它会在第二个禁用字段中获取百分比值...

现在,当我尝试使用 else if 和 else 语句检查不同的数字时,问题就出现了。我是 jQuery nooby,我不知道如何解决这个问题..

到目前为止我有这种情况:http: //jsfiddle.net/dzorz/xFHte/

html:

<input type="text" class="entered" id="entered" name="entered">
<input type="text" class="percent" id="percent" name="percent" disabled>

脚本:

$(".entered").change(function(){

 if(parseFloat(this.value) > 39617756.85){
    $(".percent").val('1%');
 }


 else if(parseFloat(this.value) > 19205010.98){
    $(".percent").val('2%');
 }


 else if(parseFloat(this.value) > 12378426.86){
    $(".percent").val('3%');
 }

 else(parseFloat(this.value) > 1242179.25){
    $(".percent").val('not qualified');
 }

});

我究竟做错了什么?

4

2 回答 2

2

I think the problem is you need the last 'not qualified' in a else block not in a else if so that if none of the condition is met the `not qualified message will be displayed.

$(".entered").change(function(){
    var value = parseFloat(this.value);
    if(value > 39617756.85){
        $(".percent").val('1%');
    } else if(value > 19205010.98){
        $(".percent").val('2%');
    } else if(value > 12378426.86){
        $(".percent").val('3%');
    } else{
        $(".percent").val('not qualified');
    }
});

Demo: Fiddle

于 2013-06-27T14:05:21.800 回答
1

您的 html 语法有一些问题

<input type="text" class="entered" id="entered" name="entered" />
<input type="text" class="percent" id="percent" name="percent" disabled="disabled" />

结合评论中的建议

$(".entered").change(function () {
    var value = parseFloat($(this).val());
    var text = "";

    if (value > 39617756.85) {
        text = "1%";
    } else if (value > 19205010.98) {
        text = "2%";
    } else if (value > 12378426.86) {
        text = "3%";
    } else if (value > 1242179.25) {
        text = "not qualified";
    }

    if (text != "") $(".percent").val(text);
});

会给你这个工作示例

于 2013-06-27T14:02:01.213 回答