2012-10-17 48 views
1

我正在開發一個使用PHP作爲服務器端的ERP系統..所以我需要非常小心我的網站/系統的安全性。我也將使用JavaScript進行客戶端驗證。所以我想確保客戶端啓用了JavaScript,當然我也會驗證數據服務器端,但我不想要不必要的服務器調用,主要是我關心窗體以及客戶端填充的數據並提交..我應該使用什麼來提交我的數據?什麼是更好的方式提交表格詳細信息

默認HTML提交和使用JavaScript驗證這裏(注:無用的,如果JavaScript是由客戶端關閉)

<input type="submit" name="Add Data" /> 


或者提交使用錨標記<a>有一個JavaScript的幫助(我發現這有意義,因爲如果JavaScript是關閉狀態,他不會能,如果我用submitt <a>標籤提交數據)

<a href="#" onclick="document.getElementById("form_id").submit();">Submit</a> 

那麼,有沒有任何壞點或者我應該堅持使用默認的submit按鈕?如果我使用<a>提交表單數據,那麼我可以使用JavaScript驗證數據嗎?

+0

您認爲使用錨代替按鈕有什麼好處? – Mathletics

+1

好處是,如果javascript被禁用,用戶將無法提交表單...所以我可以強制他在他的瀏覽器中打開javascript,所以現在即使數據將被驗證,因爲他需要javascript來打開 –

回答

4

所以我想,以確保客戶端已開啓JavaScript

你不能。即使您將系統設計爲在沒有JavaScript的情況下中斷,某人也可以對其進行反向工程並手動提交錯誤數據。

當然我會驗證數據服務器方太

這就是解決方案

,但我不想不必要的服務器調用

如果您正在收到足夠多的意外提交,其中有JavaScript關閉的人出現錯誤,導致顯着的性能或負擔,我會的吃我的帽子。

默認HTML提交和使用JavaScript

是驗證在這裏。將JavaScript綁定到表單上的submit事件。

<a href="#"

不要那樣做。

那麼,有沒有任何壞點,如果我用<a>標籤數據提交

  • 它看起來並不像的東西,將提交表單
  • 它不露面形式模式在屏幕閱讀器
  • 它靜靜地失敗,如果JavaScript不因任何原因工作

我應該堅持默認提交按鈕嗎?

是的!

+0

真棒回答...所以順便說你說,綁定的JavaScript事件提交,你的意思是'onclick'事件或驗證部分? –

+0

客戶端驗證應該使用'submit'事件來執行(除非您在執行'change'和'keypress'事件時執行此操作)。不應該有任何需要「點擊」事件。 – Quentin

+0

;)謝謝...... –

2

儘可能使用瀏覽器默認值。堅持提交按鈕,並將您的驗證綁定到表單上的submit事件。這樣,您的表單可以按照預期使用或不使用JavaScript。

0

不,您不能將客戶端操作視爲可靠或安全。如果我故意想要,我可以阻止驗證,但保持JavaScript爲提交工作。

至於你的問題,這很簡單:要麼你希望用戶能夠提交沒有JavaScript或沒有。這不是什麼「更好」的問題,這是您的要求的問題。