onClick()执行功能?

时间:2016-03-03 20:50:50

标签: javascript html forms onclick

是否有可能以用户名和密码的形式使用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()的位置?

感谢您的任何建议。

3 个答案:

答案 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>