2010-01-04 84 views
0

我使用最新的moo發行版,並試圖編寫一個函數來評估用戶在事件「keyup」上給出的表達式。只要我的測試通過,我就會自動將焦點放在下一個輸入元素上,以提高用戶體驗和速度,因爲他多次使用表單。Mootools Shift-Tab事件問題

於是我想出了這樣的事情:

var getNextInputElement = function(element){ 
    returns the next input element 
} 

var checkDay = function(event){ 
    var input = $('booking_day').get('value'); 
    if (input.length > 1 && input < 32) { 
     $('booking_day').erase('class'); 
     if (!(event.key == "tab")) { 
      getNextInputElement($('booking_day')).focus(); 
     } 
     else { 
      $('booking_day').focus(); 
     } 
    } 
    else if(input.length > 1) { 
     $('booking_day').set('class','error'); 
    } 
    else { 
     $('booking_day').erase('class'); 
    } 
}; 

window.addEvent('domready', function() { 
    $('new_booking').reset(); 
    $('booking_day').addEvent('keyup', checkDay); 
    $('booking_day').focus(); 
}); 

工作正常爲止。但是,如果我嘗試「移動標籤」回到我的輸入字段

getNextInputElement($('booking_day')).focus(); 

被評估並將焦點重置爲下一個輸入字段。所以用戶不能回滾到先前輸入的數據。我沒有發現任何可能趕上那個換檔標籤事件。由於兩個鍵被按下,所以有兩個事件被觸發。一個用於「標籤」和第二個,但不適用於「移位」。這個事件的event.key.code似乎超出了mootools實現的範圍。

任何人誰可以幫助解決這個問題?

謝謝。 傑森

回答