2014-04-29 41 views
0

我一直盯着這個2小時。用途是當用戶跳出某個字段時,該值將被轉換爲兩位數字。ie8更新值事件

由於某種原因,IE8扼流器在第一次嘗試它,但它第二次工作。之後,它偶爾會破裂。

//骨幹SNIPPIT

events: { 
    'blur [name=month], [name=day], [name=year]': 'sanitizeAge' 
}, 

'sanitizeAge': function(e) { 
    var view = this; 
    var $el = $(e.target); 
    var $val = $el.val(); 

    if($val.length === 1){ 
    $el.val('0'+$val); 
    } 
}, 

// HTML片段

<div class="padded grid-quarter"> 
     <input name="month" type="text" placeholder="MM" class="grid-whole text-field month" data-validate="month" data-min="2" maxlength="2" tabindex="3"> 
    </div> 
    <div class="padded grid-quarter"> 
     <input name="day" type="text" placeholder="DD" class="grid-whole text-field day" data-validate="day" data-min="2" maxlength="2" tabindex="4"> 
    </div> 
    <div class="padded grid-half"> 
     <input name="year" type="text" placeholder="Year of Birth" class="text-field grid-whole year" data-validate="year" data-min="4" maxlength="4" tabindex="5"> 
    </div> 

</fieldset> 
+0

具有明顯的開始...你可以嘗試使用電平變化的而不是模糊的事件嗎? – tomysshadow

回答

1

這是你的答案的一個簡化版本:

'sanitizeAge': function(e) { 
    var val = e.target.value; 
    if (val.length === 1){ 
    e.target.value = '0'+val; 
    } 
}, 
0

我能得到它的通過JavaScript,而不是jQuery的所獲得的價值才能正常工作。

'sanitizeAge': function(e) { 
    var view = this; 
    var $el = $(e.target); 
    var $val = $el[0].value; // <---- FIX 

    if($val.length === 1){ 
    $el.val('0'+$val); 
    } 
},