Javascript 将表单id传递给函数并在函数中提交

Javascript 将表单id传递给函数并在函数中提交,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,我希望能够将一个表单id传递给一个方法,然后该方法有代码将表单提交给该表单拥有的任何操作url 这是其中一个表单的代码 @using ( Html.BeginForm("jQueryPost", "Home",null, FormMethod.Post, new { id="FormPost1" })) { @Html.TextBoxFor(x => x.Name) @Html.ValidationMessageFor(x => x.Name)

我希望能够将一个表单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 " />

    }
@使用(Html.BeginForm(“jQueryPost”,“Home”,null,FormMethod.Post,new{id=“FormPost1”}))
{ 
@Html.TextBoxFor(x=>x.Name)@Html.ValidationMessageFor(x=>x.Name)

@Html.TextBoxFor(x=>x.LastName)@Html.ValidationMessageFor(x=>x.LastName)
@Html.TextBoxFor(x=>x.Age)@Html.ValidationMessageFor(x=>x.Age)

}
这是剧本

<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>

函数ReusableJqueryPost()
{ }
ReusableJqueryPost.prototype.CommonPost=函数(formId){
//警报(“警报2:”+formId);
变量fid=$(“#”+formId);
警报(“警报3:”+fid);
$(“#”+formId).submit(函数(e){
警报(“警报4”);
e、 预防默认值();
var validated=$(fid.valid();
警报(“此处验证的表单”);
如果(已验证){
$.ajax({
键入:“POST”,
url:$(fid.attr('action'),
数据:$(fid).serialize(),
接受:'application/json',
错误:函数(xhr、状态、错误){
警报(xhr.responseText);
},
成功:功能(响应){
警报(response.Name);
}
});
}
});
$('#Postbtn1')。单击(函数(){
警报(“警报1:”);
var r=new ReusableJqueryPost();
r、 CommonPost(“FormPost1”);
});
$('#Postbtn2')。单击(函数(){
警报(“警报1:”);
var r=new ReusableJqueryPost();
r、 CommonPost(“FormPost2”);
});
我只能到达警报3。当我点击这一行
$(“#”+formId)。提交(函数(e)
失败


你知道如何完成吗?对于这个例子,我只记下了Form1。Form2是Form1的副本。

问题在于,你注册的是提交处理程序,而不是提交表单,不需要使用
$(“#”+formId)。提交(函数(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);
            }
        });
    }