2011-11-08 51 views
2

我有一個表格,我已經應用了javascript驗證,但如果用戶已禁用JavaScript,那些驗證不起作用,請幫助我如何停止用戶提交表單直到&,除非他啓用javascript 。 謝謝如何阻止用戶在用戶瀏覽器禁用JavaScript時提交表單?

+4

您_must_在服務器端以及_even如果它似乎是多餘的重複JavaScript_已編碼的驗證,因爲一個積極的用戶能找到一種方法來提交表單驗證(例如,通過開發工具),無論你喜歡與否。如果你只想在一個地方實現驗證,那麼在服務器上執行,而不是客戶端。 – nnnnnn

回答

9

使用JavaScript將提交按鈕放在那裏。

<script type="text/javascript"> 
    document.write("<input type=\"submit\" value=\"Submit Form\" />"); 
</script> 
<noscript> 
    <p style="color: red;"><b><i>Please enable JavaScript to continue</i></b><p> 
</noscript> 
+0

它的工作,非常感謝你的幫助。 –

+0

這是否也阻止提交,如果您按下Enter中的一個表單域? – nnnnnn

+0

當然,如果您沒有啓用JavaScript,那麼根本沒有提交按鈕。 –

6

您可以在您的提交按鈕上添加disabled="disabled"屬性。然後在DOM加載時使用javascript刪除此屬性。

+0

更好的是,創建禁用表單的所有元素,然後使用Javascript啓用它們。 – erturne

1

你不能在客戶端。但是你仍然可以在服務器端進行驗證。實質上,服務器端驗證是真正重要的。

0

您可以使用javascript驗證,但請注意,javascript僅用於添加更多的可用性(即使用它來使表單提交更容易的客戶端)。如果沒有javascript,表單應該仍然可以提交,部分用於默認情況下沒有啓用javascript的小型用戶基礎。部分原因是一個非常小的用戶羣,否則他們只會使用客戶端的JavaScript驗證,並可以(也可能會嘗試在某個時刻)繞過這一點。所以這就是爲什麼服務器驗證是必須的,不僅僅是沒有javascript的小用戶羣。

然後ofcourse回答你的問題,對於小用戶羣誰不會試圖操縱您的數據庫或服務器,你可以刪除你的<form>及用途:

<noscript> 
    You can FORM_BEHAVIOUR me with javascript enabled. 
</noscript> 

<script> 
    create a form here with javascript 
</script> 

要渲染究竟如何,你的形式是然後當然你的,但請注意,沒有JavaScript可以阻止非常小的用戶羣濫用它。

-2

javascriptdemo.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>JAVASCRIPTDEMO</title> 
<script language="javascript" type="text/javascript"> 
function onset() 
{ 

document.forms["jdemoform"].elements["uname"].focus(); 

} 
function jdemo() 
{ 
if(document.forms["jdemoform"].elements["uname"].value=="") 
{ 
    alert("fill your name"); 
    document.forms["jdemoform"].elements["uname"].focus(); 
    return false; 
} 

    document.forms["jdemoform"].submit(); 

} 
</script> 
</head> 
<body onload="onset();"> 
if javascript disabled then form will not be submitted 
<form name="jdemoform" method="post" action="getname.php"> 
Name:<input type="text" name="uname" /> 
<input type="button" value="Submit" onClick="return jdemo();"/> 
</body> 
</html> 

          getname.php 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>JAVASCRIPTDEMO</title> 
</head> 
<?php 
echo $_POST["uname"]; 
?> 
<body> 
</body> 
</html> 
+0

享受STACKOVERFLOW現在時間改變的新簡單答案........... –

+0

comman man給它評分............... –

相關問題