1

我正在创建一个包含多个字段的网页。除非填写所有字段,否则我不希望执行 php 代码,因为这会产生错误。

这是我的html代码:

 <html>
 <body bgcolor="AliceBlue">


<form action="WorkingVersionV2.php" method="post">
<p>Which database do you wish to access? <center> <input type="text" name="database"/>     </center></p>
<p>What table would you like to examine? <center><input type="text" name="oldtablename"/></center></p>
<p>What would you like to name the table produced? <center><input type="text" name="newtablename"/></center></p>
<p>Start at row: <center><input type="text" name="startrow"/></center></p>
<p>Number of rows to search through:<center> <input type="text" name="numberrows"/>     </center></p>
<center><input type = "submit" onclick="checkFields()"/></center>
</form>

<script type="text/javascript">
function checkFields()
{
    var x = document.getElementById("database").innerHTML;
    if(x=="")
   {
        alert("You forgot to enter a database name");
       }
}
</script>

</body>
</html>

我认为如果未填写字段,则抛出一个弹出框会阻止用户。但是,当用户单击提交时,弹出框并没有弹出,我不确定一旦关闭它,php代码是否仍然会执行。

HTML/javascript 不是我的强项,如果您有更好或更简单的方法,请告诉我。

4

4 回答 4

1

如果您希望 javascript 在离开事件处理程序后停止事件继续(例如表单提交或链接单击),则只需从事件处理程序返回 false。

function checkFields() {
    var x = document.getElementById("database").innerHTML;
    if(x=="") {
        alert("You forgot to enter a database name");
        return false;
    }
}

此外,您必须将事件处理程序附加到您的表单,以便在提交后调用它:

<form ... onsubmit="return checkFields()" ...

然而,这种在 JavaScript 中附加事件处理程序的方法已经失宠。虽然它会起作用,但还有更好的方法

于 2012-06-25T21:01:41.710 回答
1

如果您对非 JavaScript 浏览器使用输入 type=submit,那么您需要进行一些更改。

您的 javascript 函数需要返回如下值:

<script type="text/javascript">
function checkFields()
{
    var x = document.getElementById("database").innerHTML;
    if(x=="")
    {
        alert("You forgot to enter a database name");
        return false;
    }
    return true;
}
</script>

你应该像这样改变你的输入按钮:

<input type="submit" onclick="return checkFields();" />
于 2012-06-25T21:36:43.607 回答
0
function validateForm()
{
var x=document.forms["myForm"]["fname"].value;
if (x==null || x=="")
  {
  alert("First name must be filled out");
  return false;
  }
}

<form name="myForm" action="demo_form.asp" onsubmit="return validateForm()" method="post">
First name: <input type="text" name="fname">
<input type="submit" value="Submit">
</form>

当您提交表单时,您将要告诉它它需要运行该函数,在本例中为验证函数。这是通过 onsubmit="function()" Return false 将结束脚本的执行。

于 2012-06-25T21:01:18.663 回答
0
function checkFields()
{
    var x = document.getElementById("database").innerHTML;
    if(x=="")
    {
        alert("You forgot to enter database name");
        return false;
    }
    return true;
}
</script>

输入按钮部分是最重要的。一定要返回函数

 <input type="submit" onclick="return checkFields();" />
于 2013-02-21T13:16:37.093 回答