我有一个增加篮子的问题。有些产品有颜色/尺寸等选项。我绘制颜色/大小的选择框和数量的输入。
<select name="productOption[1234][color]">
<select name="productOption[1234][size]">
<input type="text" name="productOption[1234][qty]">
所以option是一个包含每个产品值的数组。在abov示例中是id为1234的产品选项。
我试过
var productOptions=$("name^='productOption["+productID+"]'").val();
期望得到给定productID的选项数组,但它不起作用。 选项是动态的一些产品可以有额外的选项
任何人都可以帮助我使用选择器,以便检索给定productID的值数组并将它们传递给serverSide。
由于
答案 0 :(得分:9)
我认为这是你想要的,假设你正在使用jQuery。
<script type="text/javascript">
function getProductDetails( product_id ) {
var product_details = [];
jQuery( '[name*="productOption[' + product_id + ']"]' ).each( function() {
var option = jQuery( this );
var type = option.attr( 'name' ).match( /productOption\[\d+\]\[(\w+)\]/ );
product_details[ type[1] ] = option.val();
} );
return product_details;
}
</script>
这将返回一个关联的数组。所以你可以......
var details = getProductDetails( 1234 );
alert( details['qty'] );
答案 1 :(得分:4)
您忘记了属性选择器( [attr ^ = value] )
var productOptions=$("[name^='productOption["+productID+"]']").val();
答案 2 :(得分:1)
scape内部括号'\ \'(没有空格) - 更容易
$('input[name=items\\[\\]]')