javascript - 使用 AngularJS/AJAX 提交表单

标签 javascript php jquery angularjs ajax

所以通常情况下,我会使用 AJAX 提交我的表单,AJAX 将捕获表单数据,将其传递到我的 PHP,然后使用下面的代码从我的 php 接收任何响应;

<script>
    $("input#submit").click(function() {
        $("#login-form").submit(function(e) {
            $('#loader').show();
            // Client side validation
            if ($("#email").val() == "" || $("#password").val() == "") {
                $('#loader').hide();
                fieldError();
            }
            else {

                var postData = $(this).serializeArray();
                var formURL = $(this).attr("action");

                $.ajax(
                    {
                        url : formURL,
                        type: "POST",
                        data : postData,
                        success:function(response) 
                        {
                            switch(response) {
                                case "Valid":
                                    $('#loader').hide();
                                    $('#login-form').trigger("reset");
                                    window.location.href="index.php";
                                    break;
                                case "not eValid":
                                    $('#loader').hide();
                                    emailError();
                                    break;
                                case "not aValid":
                                    $('#loader').hide();
                                    window.location.href="cverify.php";
                                    break;
                                case "not Valid":
                                    $('#loader').hide();
                                    credError();
                                    break;
                            }
                        }
                    });
            }
            e.preventDefault(); //STOP default action
            e.unbind();
        });
    });
</script>

我现在有一个使用 Angular 的表单,我想以与上述相同的方式提交,但似乎不起作用。在此表单中,我使用 button 作为提交。

<button type="submit" 
        id="submit"
        class="btn btn-fluid-full btn-primary btn-large" 
        ng-disabled="!blockCheckout()">
    Checkout
</button>

使用我上面的表单提交代码将 input#submit 替换为 button#submit 不起作用,我只是导航到我的表单的操作 URL。

感谢任何帮助

最佳答案

您可以在表单标签上使用 ng-submit 指令。

语法

<form
  ng-submit="expression/function">
...
</form>

示例

<form ng-submit="submit()">

现在,您可以在您的 Controller 中定义提交函数,它调用一个服务(Ajax)来提交表单数据。

要停止重定向,请从按钮标记中删除 type="submit" 属性。

Reference

关于javascript - 使用 AngularJS/AJAX 提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34087486/

相关文章:

javascript - AngularJS 函数调用导致应用程序停止

c# - 弹出窗口不会在 asp.net 中回发

javascript - 根据多个下拉选项过滤表结果

javascript - 您如何通过单击 JQuery 按钮来提取 ID 数据?

javascript - 选择带有空格的 jQuery 插件搜索

javascript - 如何记录跨域 AJAX API 调用的错误?

javascript匿名函数垃圾回收

javascript - 单元测试 Angular Controller

php - 多种表单注册不起作用

javascript - 使用 jQuery 打开图像以在新窗口中打印