weixin_33701564 2015-05-31 00:24 采纳率: 0%
浏览 80

Submit()无法正常运行JS

The Javascript submit(); function is not working. My PHP script (hax.php) does not return any value, all I need is for AJAX to check that it has ran successfully. Does the success method still work under that condition or does it not validate the script any more. Besides that, even when the else{} statement is executed, it still does not submit the form. Anyone know what's wrong?

<form action="validatelogin.php" method="post" autocomplete="off" id="loginform">
        <input style="display:none" type="text" name="auto"/>
        <input style="display:none" type="password" name="auto"/>
        <label for="username">Username: </label>
        <input type="text" name="username" placeholder="Your Username" id="username" class="modernInput" style="padding: 5px; width:100%;"><br><br>
        <label for="password">Password:</label>
        <input type="password" name="password" placeholder="Your Password" id="password" class="modernInput" style="padding: 5px; width:100%;">
        <?php echo $_SESSION["error"]; ?>
        <input type="button" value="Submit" class="btn btn-success btn-block" onclick="hackvalidate()">
    </form>
    <script>
    function  _(str) {
        return document.getElementById(str);
    }
    function hackvalidate() {
        var username = _("username").value;
        var password = _("password").value;
        var regex = /SELECT\s+|DELETE\s+|UPDATE\s+|--|=|/ig;
        if (username.test(regex) || password.test(regex)) {
            $.ajax({
                url: "hax.php",
                type: "POST",
                data: {user: username, pass: password},
                success: function () {
                    _("loginform").submit();
                }
            });
        } else {
            _("loginform").submit();
        }
    }
</script>
  • 写回答

2条回答 默认 最新

  • weixin_33670713 2015-05-31 00:27
    关注

    Use .match() instead of .test().

    if (username.match(regex) || password.match(regex)) {
                $.ajax({
                    url: "hax.php",
                    type: "POST",
                    data: {user: username, pass: password},
                    success: function () {
                        _("loginform").submit();
                    }
                });
            } else {
                _("loginform").submit();
            }
    

    match() is a string method, while test() is for RegExp objects.

    评论

报告相同问题?