したがって、バスルームと(バスルーム)エンスイートの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;"/>
コード:
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のバグでしょうか?)