“9”后HTML5输入类型编号奇怪的行为

时间:2012-11-14 15:21:04

标签: jquery forms html5 input

my fiddle

所以我有两个区域,浴室和(浴室)套房。

我限制了它,所以套房区域永远不会比浴室大,如果你降低浴室的价值,它会改变套间价值,所以它保持不变。

脚本实际上很简单并且运行良好,但我注意到如果我将浴室数量设置为等于或高于9的值,它就会开始变得怪异。如果浴室是15,例如,套间将从1到15直接跳,如果你降低浴室它不再工作,它实际上像20或2000 = 2,忽略其余的数字并采取的数值仅限第一位。

HTML:

<label for="fbathrooms">Bathrooms</label><input id="fbathrooms" name="fbathrooms" type="number" min="0"/><br/>
<label for="fensuite" style="display:none">En Suite</label><input id="fensuite" name="fensuite" type="number" min="0" style="display:none;"/>​

代码:

function bathroomsTrigger(){
    if($('#fbathrooms').val() > 0){
        $('#fensuite').slideDown('fast');
        $('label[for="fensuite"]').slideDown('fast');
    } else {
        $('#fensuite').slideUp('fast');
        $('label[for="fensuite"]').slideUp('fast');
        $('#fensuite').val(0);
    }

    if($('#fensuite').val() > $('#fbathrooms').val()){
        $('#fensuite').val($('#fbathrooms').val());
    }
}

function ensuiteTrigger(){
    if($('#fensuite').val() > $('#fbathrooms').val()){
        $('#fensuite').val($('#fbathrooms').val());
    }
}

$('#fbathrooms').keyup(bathroomsTrigger);
$('#fbathrooms').change(bathroomsTrigger);

$('#fensuite').keyup(ensuiteTrigger);
$('#fensuite').change(ensuiteTrigger);​

让我发疯,已经调整了好几个小时xD

非常感谢帮助。

(这可能是一个html5错误吗?)

1 个答案:

答案 0 :(得分:5)

问题出现在你的ensuite触发器中,你没有将字符串值解析为整数,而不是比较。

变化:

$('#fensuite').val() > $('#fbathrooms').val()

为:

parseInt($('#fensuite').val()) > parseInt($('#fbathrooms').val())