如何在用户浏览器禁用javascript时阻止用户提交表单

How to stop the user from submitting form when javascript is disabled on the user's browser?

本文关键字:用户 javascript 提交 表单 浏览器      更新时间:2023-09-26

我有一个表单,我已经应用了javascript验证,但如果用户禁用了javascript,那么这些验证不起作用,请帮助我,我怎么能阻止用户提交表单,直到&除非他启用了javascript。由于

使用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>

您可以在提交按钮上添加disabled="disabled"属性。然后在加载DOM时使用javascript删除此属性。

在客户端不能。但您仍然可以在服务器端进行验证。从本质上讲,服务器端验证才是真正重要的。

您可以使用javascript验证,但请注意javascript只是为了增加更多的可用性(即使用它来使客户端更容易提交表单)。在没有javascript的情况下,表单仍然应该是可提交的,部分原因是由于用户基数小,默认情况下没有启用javascript。

部分原因是用户基数非常小,否则他们会因为只使用客户端javascript验证而羞辱你,并且可以(并且可能会在某些时候尝试)绕过这一点。这就是为什么服务器验证是必须的,而不仅仅是对于没有javascript的小用户群。

当然,为了回答你的问题,对于那些不会试图操纵你的数据库或服务器的小用户群,你可以删除你的<form>并使用:

<noscript>
  You can FORM_BEHAVIOUR me with javascript enabled.
</noscript>
<script>
  create a form here with javascript
</script>

如何准确地呈现你的表单当然取决于你,但请注意,没有javascript可以阻止非常小的用户群滥用它。

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>