2012-11-14 28 views
1

my fiddleHTML5輸入類型數量怪異的行爲後,「9」

所以我有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的bug?)

+1

我不能真正看到任何這些錯誤你在的jsfiddle談論.. – lifetimes

+0

什麼aleation沒有指明是你需要使用Google Chrome(而不是Firefox)等瀏覽器,可以使用控件旁邊的向上/向下箭頭來增加type =「number」的HTML5輸入。您必須將浴室數量增加到20個左右,然後開始增加套間的數量,最終將從少量的套間跳到更多的浴室。 – killercowuk

回答

5

問題是在你的浴室觸發,你有沒有分析的字符串值比對照更大的整數。

變化:

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

到:

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

這工作完美!感謝您的快速回答。我感到羞愧的是沒有看到xD(在javascript中不是很專業:/) – aleation

+0

沒問題,容易犯錯誤。請指定您將來使用的瀏覽器,因爲我相信使用Firefox的許多用戶(例如嘗試Chrome之前的自己)無法重現您的問題。 – killercowuk

+0

@killercowuk它爲什麼只在9之後失敗? – Noz