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

ale*_*ion 1 forms jquery html5 input

我的小提琴

所以我有2个区域,浴室和(浴室)套房.

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

这个脚本实际上很简单并且运行良好,但是我注意到如果我把浴室数量设置为等于或高于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;"/>?
Run Code Online (Sandbox Code Playgroud)

码:

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);?
Run Code Online (Sandbox Code Playgroud)

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

非常感谢帮助.

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

kil*_*wuk 5

问题在您的ensuite触发器中,您没有将字符串值解析为整数以进行大于比较.

更改:

$('#fensuite').val() > $('#fbathrooms').val()
Run Code Online (Sandbox Code Playgroud)

至:

parseInt($('#fensuite').val()) > parseInt($('#fbathrooms').val())
Run Code Online (Sandbox Code Playgroud)