0

我希望能够将表单 id 传递给一个方法,然后该方法具有将表单提交到该表单具有的任何操作 url 的代码。

这是其中一种形式的代码

   @using ( Html.BeginForm("jQueryPost", "Home",null, FormMethod.Post, new { id="FormPost1" }))
    { 
        @Html.TextBoxFor(x => x.Name)  @Html.ValidationMessageFor(x => x.Name) 
            <br />
        @Html.TextBoxFor(x => x.LastName) @Html.ValidationMessageFor(x => x.LastName) 
            <br />
        @Html.TextBoxFor(x => x.Age)  @Html.ValidationMessageFor(x => x.Age) 
            <br />



        <br />

        <input type=button id="Postbtn1" value="Post Method 1 " />
        <input type=button id="Postbtn2" value="Post Method 2 " />

    }

这是脚本

<script>
    function ReusableJqueryPost()
    { }



    ReusableJqueryPost.prototype.CommonPost = function (formId) {

        //alert('alert 2: ' + formId);
        var fid = $("#" + formId);
        alert('alert 3 : ' + fid);

        $("#" + formId).submit(function (e) {
            alert('alert 4');
            e.preventDefault();

            var validated = $(fid).valid();
            alert('form validated here');

            if (validated) {
                $.ajax({
                    type: 'POST',
                    url: $(fid).attr('action'),
                    data: $(fid).serialize(),
                    accept: 'application/json',
                    error: function (xhr, status, error) {

                        alert(xhr.responseText );

                    },
                    success: function (response) {
                        alert(response.Name);
                    }
                });
            }

        });


$('#Postbtn1').click(function () {

    alert('alert 1 : ');
    var r = new ReusableJqueryPost();
    r.CommonPost('FormPost1');
});

$('#Postbtn2').click(function () {
    alert('alert 1 : ');
    var r = new ReusableJqueryPost();
    r.CommonPost('FormPost2');
});
</script>

我只能到达alert 3。当我击中这条线 $("#" + formId).submit(function (e)时,它失败了。

关于如何做到这一点的任何想法?对于这个例子,我只放下了 Form1。Form2 是 Form1 的副本。

4

1 回答 1

1

问题而不是提交您正在注册提交处理程序的表单,无需$("#" + formId).submit(function (e) {在公共帖子中使用

ReusableJqueryPost.prototype.CommonPost = function (formId) {

    //alert('alert 2: ' + formId);
    var fid = $("#" + formId);
    alert('alert 3 : ' + fid);

    var validated = $(fid).valid();
    alert('form validated here');

    if (validated) {
        $.ajax({
            type: 'POST',
            url: fid.attr('action'),
            data: fid.serialize(),
            accept: 'application/json',
            error: function (xhr, status, error) {

                alert(xhr.responseText );

            },
            success: function (response) {
                alert(response.Name);
            }
        });
    }
于 2013-08-27T03:57:29.817 回答