微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 如何使用动态html提交表单使用jQuery Ajax输入texbox

我正在使用jQuery创建动态多个 HTML输入框并填充值,填充后我想在每个文本框中更新产品价格,并使用ajax将更新后的值提交给服务器.我面临着以下代码的问题,如果我在文本框中编辑产品价格并点击更新按钮,它调用我的ajax功能,但更新产品价格不发送到服务器.我变得空虚了.

如果我单击“更新”按钮,我将获得以下代码的空数组:

JSON.stringify($("#updateNameForm").serializeArray())

出于某种原因,我的动态文本框更新了不会出现在ajax方法中的值.

请找到我的以下代码 – 有人可以帮助我在这里做错了以及如何解决问题.
完整代码

来自服务器端的JSON:

[{
    "productName": "Product1","productPrice": "323"
},{
    "productName": "Product2","productPrice": "4333"
}]

HTML代码

<div class="content-wrapper">
  <section class="content">
    <div class="row">
      <div class="col-md-9">
        <div class="Box Box-info">
          <div class="Box-header with-border">
            <h3 class="Box-title">My Form</h3>
          </div>
          <!-- /.Box-header -->
          <form id="updateNameForm" class="form-horizontal" method="post">
            <div class="Box-body">
            </div>
            <div class="form-group">
              <div class="col-sm-offset-2 col-sm-10">
                <div class="checkBox">
                  <label>
                    <input type="checkBox" id="editName" class="input_control" /> <strong> Edit</strong>
                  </label>
                </div>
              </div>
            </div>
            <div class="Box-footer">
              <button type="submit" class="btn btn-default">Cancel</button>
              <input id="updateName" type="button" name="updatea" value="Update" class="btn btn-info pull-right">
            </div>
          </form>
        </div>
      </div>
    </div>
  </section>
</div>

更新Ajax

$("#updateName").on('click',function() {
    $.ajax({
        url: 'myApp/updateProduct',type: "PUT",dataType: 'json',data: JSON.stringify($("#updateNameForm").serializeArray()),success: function(result) {
            alert(result);
        },error: function(e) {
            console.log(e.responseText);
        }
    });
});

loadProduct函数

function loadProduct() {
    $.ajax({
        url: 'myApp/getProduct',type: "GET",success: function(productJson) {
            $.each(JSON.parse(JSON.stringify(productJson)),function(idx,obj) {
                var formgroup = $("<div/>",{
                    class: "form-group"
                });
                formgroup.append($("<label>",{
                    class: "col-sm-2 control-label",text: obj.productName
                }));
                var colsm = $("<div/>",{
                    class: "col-sm-10"
                });
                var input = $("<input/>",{
                    type: "text",class: "form-control",id: obj.productName + "Id",value: obj.productPrice
                });
                colsm.append(input);
                formgroup.append(colsm);
                $(".Box-body").append(formgroup);
            });
        },error: function(e) {
            console.log(e.responseText);
        }
    });
}

谢谢!

解决方法

您没有为输入字段指定名称.

var input = $("<input/>",{
    type: "text",name: "productPrice",value: obj.productPrice
});

试试上面的代码.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐