2010-06-02 42 views
0

我有一個輸入字段的表單,用戶輸入唯一標識符。然後我有一些jQuery代碼,當用戶離開輸入字段(blur)時,會跳出並獲取有關該部分的詳細信息,並在頁面上填充一些字段。問題在於,如果用戶在離開輸入字段之前單擊提交按鈕,那麼jQuery代碼永遠不會有機會加載數據並填充必要的字段。什麼是最好的方式去做這件事?我考慮過可能將焦點設置爲body,然後設置一個無限循環來檢查頁面,直到所有填充的字段都被填充,但我覺得某種基於事件的解決方案比不可預知的無限循環更好。有任何想法嗎?在提交之前取消選擇表單輸入並等待函數

回答

4

給表格一個onsubmit事件。

如果沒有正確填充所有表單域,那麼該事件將返回false

jQuery

$("#formname").submit(function() 
{ if (condition_not_met) return false; }); 

這將從提交,直到一切都到位阻斷形式。

禁用JavaScript無法工作,但在您使用Ajax獲取正確的字段時可能無所謂。

+0

這是一種簡單的解決方案。我想過這樣做,但希望稍微更簡化的解決方案,用戶不必再次點擊提交按鈕。 – blcArmadillo 2010-06-02 20:03:36

+0

@blcArmadillo簡單:當條件不滿足時,從上面讓我的函數設置一個標誌'submitWhenPossible = true'。讓你的Ajax成功回調檢查該標誌,如果它設置爲true,則進行編程式提交:'$(「#formname」)。submit();'不要在JS中使用無限循環,它們可能會導致用戶的瀏覽器崩潰。但是,延遲提交可能會引起混淆,因爲用戶在單擊按鈕時會看到一些瀏覽器活動(開始跳轉,頁面更改...)。從這個角度不確定這是否是一個好主意,但試一試。 – 2010-06-02 20:05:45

0

我猜你正在模糊功能中進行ajax調用? 你可以禁用提交按鈕(在頁面加載或模糊),然後在ajax回調中啓用它?

相關問題