我有一个页面,我正在通过使用JQuery单击按钮来填充表单。在该表单中,我有两个文本框和一个提交按钮,但是当我单击提交按钮时,此表单无法提交。有人请帮我摆脱这个问题。
我正在使用Razor View,这是我的代码,
@foreach (Material cert in MaterialList)
{
<tr class="tr-@cert.MaterialID">
@using (Html.BeginForm("EditMaterial", "MyController", FormMethod.Post, new { id="form-"+cert.MaterialID}))
{
<td itemid="Name">@cert.Name</td>
<td itemid="Description">@cert.Description</td>
<td id="td-edit-@cert.MaterialID">
<button onclick="edittr('@cert.MaterialID')">Edit</button>
<a href="javascript:void(0)" class="btn btn-xs btn-danger"><i class="fa fa-trash-o" style="cursor: pointer;" onclick="togglesingle('tr_statename-del-@cert.MaterialID')"></i> Remove</a>
</td>
}
JQuery代码:
$(document).ready(function () {
edittr = function (id) {
var oldhtml = $(".tr-" + id).html();
$(".tr-" + id + " td").each(function () {
if ($(this).attr("id") == "td-edit-" + id) {
$(this).html("<button class='btn btn-sm btn-primary' type='submit' onclick='onupdateclick(" + id + ")'><i class='fa fa-save'></i> UPDATE</button> " +
"<input type='hidden' name='MaterialID' id='MaterialID' value='" + id + "' />" +
"<button class='btn btn-sm btn-default' type='button'>CANCEL</button>");
}
if ($(this).attr("id") != "td-edit-" + id) {
$(this).html("<label class='input'><input type='text' name='" + $(this).attr("itemid") + "' value='" + $(this).text() + "' /></label>");
}
});
}
答案 0 :(得分:0)
您可以将 event delegation 用于动态创建的元素,例如:
$(document).on('click','input[type="submit"]',function() {
$(this).closest('form').submit();
});