Javascript表单验证不会执行

时间:2016-03-18 15:58:50

标签: javascript php validation

我有一个输入框。提交后,我有一个PHP脚本,它检查输入框是否为空。如果是,则显示错误消息并运行Javascript函数。

我的问题是出现了错误消息,但Javascript函数没有执行。

这是我的剧本:

<?php    
if(isset($_POST['submit'])) {

    $username = $_POST['username'];

    if(empty($username)) {
        echo 'Please enter a username';

        echo"
            <script>
            window.onload = function () {
                function validate(e) {
                    var username = document.getElementById('username');
                    if (username.value.trim() == '') {
                        username.classList.add('error');

                        setTimeout(function() {
                            username.classList.remove('error');
                        }, 300);
                        e.preventDefault();
                    }
                }
            }
            </script>
            ";

    }else{
        // something here
    }
}
?>

<form method="post" id="login">
    <input type="text" id="username" name="username">
    <input type="submit" name="submit">
</form>

1 个答案:

答案 0 :(得分:1)

您的JavaScript函数实际上在哪里执行?删除逻辑,你拥有的结构

window.onload = function () {
  function validate(e) {
    //...
  }
}

因此,当窗口加载时,您执行一个函数。该函数只是定义另一个函数。什么都没有执行其他功能。

如果要在窗口加载时执行该代码,请不要将其包装在函数中。只需执行它:

window.onload = function () {
  // validation logic here
}