2011-07-25 43 views
0

我正在構建一個ASP.NET網站,以允許導入一些網球比分。我打算爲Player 1製作一行文本框,併爲Player 2製作一個允許輸入分數的行。JQuery複雜的客戶端驗證

我的第一項任務是驗證輸入的分數是否有效。我可以在AJAX更新面板中的代碼中做到這一點,所以它可以無縫地發生,但我想知道如果我可以用客戶端驗證和jQuery來做到這一點。這比服務器處理時間更高效還是效率更低?該代碼需要循環遍歷每個集合分數的兩個文本框,並確保其中一個玩家有6或7個遊戲,並且比另一個玩家多2個遊戲。如果不是,它可能是一個tiebreak(在這種情況下,需要顯示一對隱藏的tiebreak文本框),或者分數無效,並且需要重新設置文本框以突出顯示它。

這是可行的嗎?如果是這樣,我會歡迎任何指示讓我走。到目前爲止,我已經完成了很少的JavaScript/jQuery。

+0

客戶端是要走的路,因爲你可以驗證,並給予及時的反饋,因爲他們填寫表格。驗證只是您需要的一部分,您還需要構建一些動態HTML以支持顯示其他字段。 jQuery將使這個過程「更快」 – Zachary

+0

除非你不關心數據或者你可以信任你的用戶,否則客戶端永遠不可能走。正如Caimen所說的那樣。做兩個。 –

回答

1

您應該問的問題可能是:「使用JavaScript進行驗證會很安全嗎?」。問題是,如果說你已經建立了javascript來表示不允許某個點以上的分數,那麼可以在客戶端操縱javascript以允許更高的分數。服務器端仍然需要驗證分數以確保它是正確的,因此您仍然需要一些服務器端驗證。 Javascript驗證實際上只是爲了讓事情看起來很漂亮,當向服務器發送數據時它確實沒有價值,因爲JavaScript很容易被許多工具操縱。例如,使用Firefox的Firebug可以非常容易地將DOM變量操縱到任何你想要的東西。這裏是一個JQuery驗證插件的鏈接。只要記住,如果您要將數據提交給服務器,則必須重新進行驗證,以確保客戶端沒有任何操作可以允許發送不符合規範的變量。

但是,如果數據沒有存儲在服務器上,只有在本地,那麼真的沒有太多擔心。

http://plugins.jquery.com/project/validate

+0

謝謝。我完全同意並將在提交到數據庫之前驗證所有數據,並純粹使用客戶端來改進前端的界面和易用性。 我需要解決的是如何使用jquery驗證來比較玩家A和玩家B得分的值,以確定它們是否構成一個完整集合(即玩傢俱有6或7兩個明確點)。 –

+0

JQuery驗證並未真正用於此類驗證。它用於查看一個字段是否有全部小寫字符,或者是否有數字。您需要編寫的代碼應該相當簡單,只需使用純JavaScript即可。沒有必要讓JQuery真正涉足這一點。一些簡單的if語句就足夠了。它的核心Javascript與其他語言沒有太大區別。如果您在開始使用javascript時遇到問題,請轉到w3schools.com並運行一些教程。 – Caimen