是否有可能以用户名和密码的形式使用onClick()执行JS验证? 这是代码:
<form action="signup.php" method="post" name="formInput" onclick="validateForm()">
Username: <br> <input type="text" name="username" placeholder="Username"><br>
Password <br> <input type="password" name="pass" placeholder="Password"><br>
<input type="submit" name="submit">
</form>
我记得以前做过但不记得在表单创建或按钮提交中调用实际的onClick()的位置?
感谢您的任何建议。
答案 0 :(得分:0)
<script>
function validateForm() {
// if valid return true else false
}
</script>
<form action="signup.php" method="post" name="formInput" onsubmit="return validateForm()">
Username: <br> <input type="text" name="username" placeholder="Username"><br>
Password <br> <input type="password" name="pass" placeholder="Password"><br>
<input type="submit" name="submit">
</form>
答案 1 :(得分:0)
点击提交按钮后,signup.php
即被执行,validateForm()
将被忽略。我不知道你为什么试图用JavaScript而不是signup.php
本身来验证数据。此外,在前端进行验证几乎肯定是一个巨大的安全漏洞。
我建议你做的是忘记在JavaScript中验证,而是在PHP中进行验证。如果您发布validateForm()
代码,我们可以帮助您将其转换为PHP(并且可能也会改进它)。
编辑:您已声明您的验证是为了确保输入字段不为空。所以我们走了:
<?php
session_start();
$username = $_POST['username'];
$pass = $_POST['pass'];
if (strlen($username) < 1 || strlen($pass) < 1) {
header(...); //redirect back to the home-page
$_SESSION['message'] = "Username and password must be filled out.";
}
... //rest of your signup.php
?>
并将HTML页面的扩展名更改为.php,然后将其添加到顶部:
<?php
session_start();
echo("<script> alert('" . $_SESSION['message'] . "'); </script>");
?>
对于这样一个简单的任务来说,这似乎有点过头了,可能就是这样。但是,您需要检查除了字段空虚之外的其他内容,并且必须以这种方式完成。
但是,如果您不关心并希望以简单的方式执行此操作,则可以使用JavaScript以某种方式禁用提交按钮,直到两个字段都填满为止。检查两个字段是否都填充了onChange = validateForm()
函数。
答案 2 :(得分:0)
解决方案:
<form action="signup.php" method="post" name="formInput" onsubmit="return validateForm()">
Username: <br> <input type="text" name="username" placeholder="Username"><br>
Password <br> <input type="password" name="pass" placeholder="Password"><br>
<input type="submit" name="submit" onsubmit="validateForm()">
</form>