表单操作不起作用由JQuery生成

时间:2014-04-16 16:44:06

标签: jquery

我有一个页面,我正在通过使用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>&nbsp;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>&nbsp;UPDATE</button>&nbsp;" +
                "<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>");
        }
    });
}

1 个答案:

答案 0 :(得分:0)

您可以将 event delegation 用于动态创建的元素,例如:

$(document).on('click','input[type="submit"]',function() {
    $(this).closest('form').submit();
});