2016-07-07 113 views
0

我正在使用jquery的自動完成,並通過ajax調用通過SQL填充值。我想限制此字段上的輸入僅爲自動完成列表中的輸入。意思是如果sql返回'A,B,C',則值D不應被接受。Jquery自動完成字段值

我可以通過製作額外的查詢後端來做到這一點,但我想知道是否有更簡單的方法和更高效的實現方法。

+0

所以你想驗證用戶輸入? –

+0

是的,理想情況下,這就是我想要發生的事情。我認爲使用下拉lsit會更好,但自動完成輸入在美觀上看起來更美觀@AndrosRex –

回答

0

是的,你可以在客戶端進行用戶驗證。您可以輕鬆檢查提交的值是否與所顯示的值不符,顯示某種「錯誤」消息並使用.preventDefault()停止發送數據。然而,這只是爲了更好的用戶體驗。儘管如此,每個人仍然可以修改JS代碼併發送無效數據。您不一定需要進行此驗證 - 用戶也可以在沒有驗證的情況下進行驗證。

這就是爲什麼以服務器端安全和缺少錯誤爲目標的驗證。如果通過發送無效數據,用戶可能會損壞一個表甚至整個數據庫,那麼您肯定也必須驗證它在服務器端。

+0

目前,我驗證它的方式是再次進行查詢,然後檢查提交的值是否位於查詢返回的列表中,以便自動完成。我只是想知道是否有一個簡單的js/jquery函數來執行此操作,如.onlySourceFields:true或類似的東西(甚至可能是一個javascript/jquery函數,它不一定需要執行另一個查詢,只是重複使用自動完成列表中的值)。我想我做另一個查詢來檢查可能是我的數據庫中不必要的負載。如果沒有其他方法可以做到這一點,那麼我就堅持使用當前的實現。 Thx –

+0

@Bennjoe Mordeno爲什麼在JS代碼中沒有列出當前自動完成結果的列表,因此在驗證時,您所做的只是測試輸入值是否與其中的任何內容相對應? –