我希望能够将表单 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 的副本。