2015-12-21 45 views
1

我遇到了一個用戶界面問題,並且驗證了我真正想要解決的問題。對於網站:http://fun-booths.co.uk/dev/驗證文本輸入 - 執行中的錯誤

我使用驗證這個簡單的插件:http://www.formvalidator.net/

這背後的簡單代碼如下:

$.validate({ 
     form : '#fscf_form1, #fscf_form2', 
     validateOnBlur : true, 
     scrollToTopOnError : false 
    }); 

validateOnBlur特性使得輸入時發生鬆動肯定驗證焦點。

有在右手邊欄的形式。選擇日期和時間時,驗證功能無法正常運行。

填寫與例如正確的測試數據格式鎮/城市和郵政編碼字段。你會注意到一個綠色的滴答動態出現。現在,對於日期和時間字段,最終用戶實際上沒有輸入,通過分別單擊響應時間選擇器/日期選擇器將輸入賦予表單字段。

選擇日期和時間,並重點放在其他輸入元件,這導致了以下問題之後(即使一個值已被選擇的紅色橫被呈現,其中不希望的行爲的表單字段。):

enter image description here

我相信這個問題是從一個事實,即用戶實際上並不文本輸入到時間或日期字段而產生。所以驗證不會檢測到實際文本已被輸入到表單中。

注意:一個奇怪的行爲是,如果選擇了一個值,那麼在日期/時間字段上會出現一個綠色的勾號,然後再次選擇相同的輸入/給定焦點。

是否有一個JavaScript/jQuery的解決方案,可以使用事件偵聽器火來解決這個問題,並確保出現一個綠色的勾?或者文本輸入需要物理輸入日期/時間字段。

回答

1

試試這個黑客,應該工作:

$('.picker__input').on('change', function(){ 
    $(this).focus(); 
}) 

希望這有助於。

+0

請問我在這種情況下所指的$(this)是什麼?我爲了學習目的撰寫了這段代碼片段的描述。我是否正確地說$(this)是指在那個特定時刻發生變化事件的特定.picker__input?換句話說,在這種情況下,$(this)的用途不是用作佔位符的形式,而是動態選擇與之交互的特定.picker__input? – user1554264

+0

您的幫助/澄清將不勝感激。 – user1554264

+0

Hi @ user1554264,'$(this)'指的是具有'picker__input'類的元素。 –

0

你正在做兩個插件一起工作。試着給回調pickadate要求重新處理領域:

$('#fscf_field2_12').pickadate({ 
    //... add this parameter 
    onClose: function() { 
     $('#fscf_field2_12').blur(); 
    }, 
    //... or this one 
    onSet: function() { 
     $('#fscf_field2_12').blur() 
    } 
}) 

您還可以查看來自jQuery的表格,驗證的方法validateOnEvent