2017-02-16 194 views
0

如果JavaScript已關閉,是否可以阻止提交表單?我知道你可以做隱藏表演的東西。但是,如果Javascript被關閉,是否有可能確保表單無法提交?因爲所有人都必須做的就是打f12並看到他們想要的東西。我知道人們會告訴我服務器端驗證,但我很好奇,除了顯示和隱藏之外,是否有人用Javascript或Jquery做任何特殊的事情。JavaScript停止提交表單

+2

沒有。服務器端的二級驗證是防止這種情況的方法。 –

+1

當JavaScript關閉時,您無法使用JavaScript(以及擴展jQuery)執行_special things_,這首先會挫敗選項的用途。當然,如果在瀏覽器中有一個錯誤仍然可以讓你執行JavaScript,那麼你可以_technically_。 – zwer

回答

1

你可以刪除提交按鈕上的事件!

寫在CSS類「無腳本」,形成集裝箱和寫入樣式刪除按鈕事件提交 如果JS - 您的形式將正常 工作如果JS關 - 只要你想

您的按鈕沒有活動不幸的是,如果你按 'ENTER' 輸入表單將提交

//default when js turned on remove class 'noscript' 
 
//document.querySelectorAll('.noscript')[0].className = ''; 
 
//also need to remove onsubmit attribute 
 

 
//for test case not remove class 'noscript' 
 
//js turned off
.noscript button{ 
 
    pointer-events:none; 
 
}
<div class="noscript"> 
 
    <form onsubmit="return false;"> 
 
    <input value='smth'> 
 
    <button> 
 
     Submit 
 
    </button> 
 
    </form> 
 
</div>

+0

如果js關閉,我們可以隱藏所有表單輸入,表單不會通過輸入提交 –

1

如果 JavaScript被關閉,是否可以確保表單無法提交?

是的。

你需要做的是建立你的表單默認情況下沒有提交機制,以便那些沒有JavaScript的人不能提交表單,而啓用了JavaScript的表單將被允許,因爲你會使用JavaScript來修改表單並使它可以提交。例如,確保您的表單不包含輸入或提交類型的按鈕,並且沒有沒有類型屬性的按鈕(提交的<button>的默認類型屬性)。您還需要擁有多個單一文本輸入的表單,因爲大多數瀏覽器都會通過按回車鍵提交基本表單。 This vs this

然後使用JavaScript,您可以通過各種方式修改文檔以啓用表單的提交。例如,添加(或更改輸入或按鈕的類型)以使其類型爲submit。 Example

但請注意,這不會阻止任何人使用瀏覽器的控制檯修改代碼並提交表單,或者可能嘗試從他們控制的服務器提交跨站點腳本提交。