我需要获取所有值的文本,然后使用json发送值以将所有价格插入数据库,但是我遇到了问题,我无法获取输入文本名称的所有值的文本='价格&#39 ;. 这是HTML代码:
<input type='text' id='price1' name='price[]'/>
<input type='text' id='price2' name='price[]'/>
<button type='button' id='btn'/>
这是JS代码:
$('#btn').click(function (e) {
var myprice = [];
myprice = $("*[name='price']").val();
$.post(
"index.php",
{
type: "insert",
price: myprice,
}
).done(function (data) {
console.log(data);
})
});
答案 0 :(得分:3)
您可以使用.map()
获取所有值:
var myprice = $('[name="price[]"]').map(function(i,v) {
return v.value;
}).get().join(',');
//result: "value1,value2..."
或$.map()
:
var myprice = $.map($('[name="price[]"]'), function(v,i) {
return v.value;
}).join(',');
答案 1 :(得分:2)
您无法获取一次值,您需要迭代,因为您需要多个输入值。
并使用正确的名称,更改您的html:
<input type='text' id='price1' name='price'/>
<input type='text' id='price2' name='price'/>
和代码:
var myprice = [];
for(var i=0; i < $("*[name='price']").length; i++){
myprice.push($("*[name='price']:eq("+i+")").val());
}
答案 2 :(得分:1)
您可以遍历您的项目(无需括号,不更改HTML)并轻松将其添加到数组中 -
$('#btn').click(function (e) {
e.preventDefault();
var myprice = [];
$("*[name='price']").each(function() {
myprice.push( $(this).val() );
});
console.log(myprice); // e.g., ["56", "42"]
});
这是EXAMPLE
答案 3 :(得分:0)
名称为price[]
,而不是price
。