javascript - html5表单提交到onclick js函数: nothing is happening

标签 javascript jquery html api sinatra

如果我没有使用正确的术语,请提前道歉。 我获得了一个简单的 sinatra api 来与用户和组一起工作。 我一直在研究这一切的逻辑,虽然一切似乎都正常,但我无法通过 onclick 来调用 issuccess js 函数。我尝试做事件监听器。我现在迷路了,请帮忙。

    <!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>HTML5 Login</title>
    <link rel="stylesheet" href="css/normalize.css">
    <link rel="stylesheet" href="css/style.css">
</head>
<body>
    <section class="loginform cf">
        <form name="login" method="post" onclick="return isSuccess()" accept-charset="utf-8">
            <ul>
                <li>
                    <label for="usermail">Email</label>
                    <input type="email" name="usermail" placeholder="yourname@email.com" required>
                </li>
                <li>
                    <label for="password">Password</label>
                    <input type="password" name="password" placeholder="password" required></li>
                <li>
                    <input type="submit" value= "login" \>
                </li>
            </ul>
        </form>
    </section>

    <script type="text/javascript">
    function isSuccess(){
        var firstAdmin = {
            "name": "Admin",
            "email": "admin@example.com",
            "password": "secret",
            "admin": true
            };
        $.post("main.rb", firstAdmin);

        function isValidUser() {
            $.get( "/users", function(data) {
                var x=document.form.usermail.value;
                var y=document.form.password.value;
                if (x === users.email && y === users.password && users.admin === true){
                    window.location="userprofile/adminprofile.html";
                }
                if (x === users.email && y === users.password && users.admin === false){
                    window.location="userprofile/userprofile.html";
                }
            alert( "success" );
            })



            });
        }
    }
    </script>
</body>
</html>

最佳答案

我认为您没有正确使用$get。你查过它的文档吗?

https://api.jquery.com/jquery.get/

目前,当您执行以下操作时,您将忽略 get 的结果:

if ($.get('/users') = 200){

因为该函数立即返回(无论 Sinatra API 请求是否已完成)。您需要传入一个回调函数,该函数会在请求实际完成后立即调用:

$.get( "/users", function(data) {
  //automatically get here if return status is 200
  alert( "success" );
})

关于javascript - html5表单提交到onclick js函数: nothing is happening,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30004758/

相关文章:

javascript - 如何正确检查字符串是否不包含特定单词?

javascript - Greasemonkey - 集成滚动和鼠标点击操作

javascript - Bootstrap 3 > 尝试创建高度相同的列

javascript - 如何根据单元格内容更改表格单元格中的字体大小?

javascript - 根据其他选择更改一个表单选择选项

jquery - 带方向 RTL 的 FlexSlider

javascript - 我需要调用 onKeyDown 函数的输入文本框的 id

javascript - 在定义列表项旁边添加按钮

html - 我表单上的 CSS 样式在 Firefox 上不起作用

html - 在 <p> 标签内创建一个 span 作为颜色框