2013-06-19 44 views
0

嗨,我遇到了一些問題。我在使用一堆HTML控件(文本框,複選框,下拉菜單等)的網頁上有一個表單。我打算將輸入的數據添加到數據庫中,但需要先驗證它。我更喜歡在客戶端進行驗證,因爲它更乾淨。那麼是否有可能在JavaScript中執行所有的錯誤檢查,然後當所有檢查出來的時候,向服務器端代碼發送一個真或假的值,以便它知道開始處理它?使用Javascript進行驗證,使用ASP.NET進程

截至目前,我一直在做我的JavaScript驗證,然後用ASP.NET代碼模仿它。它有效,但必須有更好的方法。

在此先感謝

+0

有一個像isValid這樣的全局變量設置爲false,並在表單回發檢查它並返回false。如果(!isValid)返回false;這樣,一旦驗證所有字段有效,您的JavaScript就可以將該變量設置爲true。 – trnelson

+1

如果值無效,您應該能夠通過從提交按鈕事件處理程序返回false來阻止提交給服務器的數據。 –

+1

你應該在兩個地方進行驗證。一次爲用戶(客戶端),一次爲數據完整性(服務器端)。你所做的一切聽起來都不對。 –

回答

1

當談到決定在哪裏進行驗證,有兩種選擇:

  • 服務器
  • 在服務器上客戶

僅在客戶端執行驗證是而不是安全o因爲你不能相信客戶。如果用戶禁用了JavaScript,那麼您的客戶端驗證永遠不會運行?現在你的服務器正在盲目地接受潛在的不良數據。如果用戶將您的webform保存到磁盤,將其更改爲刪除驗證,然後使用其修改版本提交?您的服務器一味接受潛在的錯誤數據。

僅客戶端驗證最終會讓您付出代價 - 不要沿着這條路線走。

0

直到您選擇使用ASP.NET MVC,這是一種優雅的「更好的方式」來構建具有基於性質屬性的驗證的應用程序,那麼您運氣不好。你必須檢查服務器上的數據。

記住,

Never ever trust the data from the user. 

即使大多數用戶將是良好的老攤曬,但也有聰明的,邪惡的人在那裏誰將會嘗試破解您的閃亮點。除此之外,如果人們發現您不驗證服務器上的數據,他們會嘲笑你。

爲了讓您免受這種侮辱,請在服務器上驗證您的數據。