gpt4 book ai didi

javascript - 如何使用 jQuery Ajax 提交带有动态 html 输入文本框的表单

转载 作者:搜寻专家 更新时间:2023-10-31 21:46:47 25 4
gpt4 key购买 nike

我正在使用 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",
dataType: 'json',
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);
}
});
}

谢谢!

最佳答案

您还没有将 name 输入到您的输入字段。

var input = $("<input/>", {
type: "text",
name: "productPrice",
class: "form-control",
id: obj.productName + "Id",
value: obj.productPrice
});

试试上面的代码。

关于javascript - 如何使用 jQuery Ajax 提交带有动态 html 输入文本框的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37152923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com