我有很多通过jQuery动态添加的文本框。它们都有相同的名字,如......
<input type="text" name="employer" id="employer" />
<input type="text" name="position" id="position" />
<input type="text" name="city" id="city" />
<input type="text" name="employer" id="employer" />
<input type="text" name="position" id="position" />
<input type="text" name="city" id="city" />
so many...
我通过AJAX传递所有文本框值,但它不起作用。我的AJAX代码在下面..
AJAX
$.ajax(
{
type: "POST",
url: $("#cfgRoot").val()+'/accounts/educationInfoPost.php',
data:
{
employer:$("#employer").val().trim(),
position:$("#position").val().trim(),
city:$("#city").val().trim()
}
});
先谢谢
答案 0 :(得分:3)
var empName = $("input[name=employer]").map(function(){
return $(this).val();
}).get().join(",");
并将其传递给ajax数据。
<强>代码强>
var empName = $("input[name=employer]").map(function(){
return $(this).val();
}).get().join(",");
var position = $("input[name=position]").map(function(){
return $(this).val();
}).get().join(",");
var city = $("input[name=city]").map(function(){
return $(this).val();
}).get().join(",");
$.ajax(
{
type: "POST",
url: $("#cfgRoot").val()+'/accounts/educationInfoPost.php',
data:
{
employer:empName,
position:position,
city:city
}
});
还有一件事不要为DOM添加相同的ID。
ID必须是每个DOM的唯一
答案 1 :(得分:1)
如果您为2个输入提供相同的名称,并且具有相同的ID,您认为会发生什么?
如果您有多个输入,您想要它们作为相同的名称,您应该至少给它们相似的名称。
像
这样的东西<input type="text" name="employer1" class="employer" />
<input type="text" name="position1" class="position" />
<input type="text" name="city1" class="city" />
或者,您可以将它们提供给数组
<input type="text" name="employer[]" class="employer" />
<input type="text" name="position[]" class="position" />
<input type="text" name="city[]" class="city" />
就通过AJAX发送此数据而言,您可能只想序列化整个表单。当然,这是基于您希望一次性发送所有表单数据的假设。
var serializedForm = $('form').serialize();
$.ajax(
{
data: serializedForm,
//rest of the code here
});
答案 2 :(得分:0)
您的字段ID不是唯一的,请尝试使您的ID唯一,并且它应该有效。