Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 语义UI:api与ajax调用_Jquery_Semantic Ui - Fatal编程技术网

Jquery 语义UI:api与ajax调用

Jquery 语义UI:api与ajax调用,jquery,semantic-ui,Jquery,Semantic Ui,我有一个表单,有两个字段,用户名和密码。我正在使用语义UI/JQuery提交表单 $(document).ready(function () { $('#ValidateUser').form( { on: 'submit', fields: { username: { identifier: 'us

我有一个表单,有两个字段,用户名和密码。我正在使用语义UI/JQuery提交表单

  $(document).ready(function () {

        $('#ValidateUser').form(
            {
                on: 'submit',
                fields: {
                    username: {
                        identifier: 'username',
                        rules: [{
                            type: 'empty',
                            prompt:'Username cannot be empty'
                        }]
                    },
                    password: {
                        identifier: 'password',
                        rules: [{
                            type: 'empty',
                            prompt:'Password cannot be emtpy'
                        }]
                    }
                },
                onSuccess: function(event){
                    event.preventDefault();
                    $.api({
                        url: '@Url.Action("Login", "Validation")',
                        serializeForm: true,
                        data: new FormData(this),
                        onSuccess: function (result) {
                            result.preventDefault();
                            if (result.Success) {
                                window.location = "/Dashboard/Dashboard";
                            }
                            else {

                                $('#formresult').append(result.Msg);
                            }
                            return false;
                        }
                    });

                }
            });
    });
然而,这不起作用。如果我将语义UI.api调用替换为$.ajax调用,那么它工作得很好

        $(document).ready(function () {

        $('#submitbutton').click(function(){
            $('#formresult').hide();
        });

        $('#ValidateUser').form(
                 {
                     on: 'blur',
                     fields: {
                         username: {
                             identifier: 'username',
                             rules: [{
                                 type: 'empty',
                                 prompt: 'Username cannot be empty'
                             }]
                         },
                         password: {
                             identifier: 'password',
                             rules: [{
                                 type: 'empty',
                                 prompt: 'Password cannot be emtpy'
                             }]
                         }
                     },

                     onSuccess: function (event) {
                         $('#formresult').hide();
                         event.preventDefault();
                         var formData = new FormData(this);
                         $.ajax({
                             url: '@Url.Action("Login", "Validation")',
                             type: "POST",
                             dataType: "json",
                             contentType: "application/json; charset=utf-8",
                             data: formData,
                             contentType: false,
                             processData: false,
                             success: function (result) {

                                 if (result.Success) {
                                     window.location = "/Dashboard/Dashboard";
                                 }
                                 else {
                                     $('#formresult').show();
                                     $('#formresult').text(result.Msg);
                                 }


                             },
                             error: function (result) {
                                 $('#formresult').show();
                                 $('#formresult').text(result);
                             }
                         });
                         event.preventDefault();
                     }
                 });


    });

有人能帮我找出.api语义调用不起作用的原因吗?

我自己设法解决了它,以备将来有人遇到同样的问题时参考,下面是我如何修复它的。 我通过管道调用了.api,而不是在表单验证成功时调用它

这是完整的代码

$(document).ready(function () {

        var urllink = '@Url.Action("Login", "Validation")';


        $('#ValidateUser').form(
                                 {
                                     on: 'blur',
                                     fields: {
                                         username: {
                                             identifier: 'username',
                                             rules: [{
                                                 type: 'empty',
                                                 prompt: 'Username cannot be empty'
                                             }]
                                         },
                                         password: {
                                             identifier: 'password',
                                             rules: [{
                                                 type: 'empty',
                                                 prompt: 'Password cannot be emtpy'
                                             }]
                                         }
                                     },
                                     onSuccess: function (event) {
                                         $('#formresult').hide();
                                         $('#formresult').text('');
                                         event.preventDefault();
                                         return false;
                                     }

                                 }
                               )
                             .api({
                                 url: urllink,
                                 method:'POST',
                                 serializeForm: true,
                                 data: new FormData(this),
                                 onSuccess: function (result) {
                                    $('#formresult').show();
                                    if (result.Success) {
                                        window.location = "/Dashboard/Dashboard";
                                    }
                                    else {

                                        $('#formresult').append(result.Msg);
                                    }
                                    return false;
                                }
                });


    });

我自己设法解决了它,以备将来有人遇到同样的麻烦时参考,下面是我如何解决它的。 我通过管道调用了.api,而不是在表单验证成功时调用它

这是完整的代码

$(document).ready(function () {

        var urllink = '@Url.Action("Login", "Validation")';


        $('#ValidateUser').form(
                                 {
                                     on: 'blur',
                                     fields: {
                                         username: {
                                             identifier: 'username',
                                             rules: [{
                                                 type: 'empty',
                                                 prompt: 'Username cannot be empty'
                                             }]
                                         },
                                         password: {
                                             identifier: 'password',
                                             rules: [{
                                                 type: 'empty',
                                                 prompt: 'Password cannot be emtpy'
                                             }]
                                         }
                                     },
                                     onSuccess: function (event) {
                                         $('#formresult').hide();
                                         $('#formresult').text('');
                                         event.preventDefault();
                                         return false;
                                     }

                                 }
                               )
                             .api({
                                 url: urllink,
                                 method:'POST',
                                 serializeForm: true,
                                 data: new FormData(this),
                                 onSuccess: function (result) {
                                    $('#formresult').show();
                                    if (result.Success) {
                                        window.location = "/Dashboard/Dashboard";
                                    }
                                    else {

                                        $('#formresult').append(result.Msg);
                                    }
                                    return false;
                                }
                });


    });