我只是想向同一页面提交一个简单的表单,但是当它被提交时,它会在同一页面上调用 PHP 函数。但是,我试图在提交之前进行一些 JavaScript 验证。所以我想知道在表单标签中使用 onSubmit 调用 js 函数和在按钮上使用 onClick 调用 js 函数有什么区别....这就是我目前正在尝试做的。
<?php
function tobecalled()
{
echo "This was run";
}
?>
<html>
<head><title>Testing</title>
<script type="text/javascript">
function testResults (form)
{
var TestVar = form.inputboxname.value;
if(TestVar == '')
return false;
else
return true;
}
</script>
</head>
<body>
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="POST" onSubmit="return testResults(this);">
<input type="text" name="inputboxname" />
<input type="submit" value="Save" name="submit" />
<?php
if(isset($_POST['submit']))
tobecalled();
?>
</form>
</body
</html>
它有效..
但是如果我让(通过 JS 提交)
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="POST">
...
<input type="submit" value="Save" name="submit" onClick="return testResults(this);"/>
...
它仍然调用 PHP 函数 tobecalled()
-- 为什么?我期待它不打电话。它是如何工作的?
最佳答案
它允许它通过的原因是因为您在 onclick 事件中传递了 this
。在这种情况下,this
指的是提交按钮,而不是函数所需的表单。
因此 form.inputboxname.value
返回 undefined
,它不是 ''(空字符串),因此 testResults
函数返回 true。因此提交被激活。
关于php - Javascript 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4741538/