Javascript 将表单id传递给函数并在函数中提交
我希望能够将一个表单id传递给一个方法,然后该方法有代码将表单提交给该表单拥有的任何操作url 这是其中一个表单的代码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)
@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);
}
});
}