您好,我有一个商店,您需要先指定选项才能添加到购物车中。我曾经使用单选按钮添加这些规格,但列表变得很长,所以我重建它以选择框。问题是,现在有时会添加规格,有时候它不会......
选择框以循环方式填充。并且由smarty完成,看起来像这样
{**************SELECT BOX*******************}
{if $menuaddonslist[add].mainaddonsname neq '' && $menuaddonslist[add].mainaddonsnamecnt >= 1}
{$objSearchDetails->menuSubAddonsList($menuaddonslist[add].addonparentid,$menuaddonslist[add].menuaddons_menuid)}
<div class="single">
<span class="addonTitle">{$menuaddonslist[add].mainaddonsname|stripslashes}</span>
<select class="popNameInput" id="selectBox_{$menuaddonslist[add].addonparentid}" name="addonstype_{$menuaddonslist[add].mainaddonsname}" style="border: 1px solid #dedede;margin-bottom:15px;width:230px;">
{section name="subadd" loop=$menuSubaddonslist}
{if $menuSubaddonslist[subadd].subaddonsname neq ''}
{if $menuaddonslist[add].mainaddonsnamecnt eq '1'}
<option value="{$menuSubaddonslist[subadd].menuaddons_id}">
{$menuSubaddonslist[subadd].subaddonsname|ucfirst|stripslashes}
{if $menuSubaddonslist[subadd].menuaddons_priceoption eq 'Paid'}
(+ €{$menuSubaddonslist[subadd].menuaddons_price} )
{/if}
</option>
{/if}
{/if}
{/section}
</select>
<input type="hidden" name="singleopt" class="singleopt" id="singleopt" value="single">
</div>
<div style="clear:both"></div>
这是tje jquery
if(singleoption == 'single'){
var AddonstypeSingle=[];
$("div.single :option").each( function() {
AddonstypeSingle.push( this.value );
});
//alert(AddonstypeSingle);
}
因此,如果有10个选择框,它会显示10次div,其中class为single。然后我循环它并采取:选项var但有时它只是不工作。在使用无线电选项之前,jquery是这样的:
if(singleoption == 'single'){
var AddonstypeSingle=[];
$("div.single input[type=radio]:checked").each( function() {
AddonstypeSingle.push( this.value );
});
//alert(AddonstypeSingle);
}
工作得很好。我也可以给每个盒子一个uniqe ID,但问题是这个选择框列表是自动创建的,我不能用jquery硬编码。
我的选择器错了吗?
答案 0 :(得分:1)
你可以尝试
if(singleoption == 'single'){
var AddonstypeSingle=[];
$("div.single select").each( function() {
AddonstypeSingle.push( this.value );
});
}
答案 1 :(得分:1)
这样可以解决问题;)
var AddonstypeSingle=[];
$("div.single option:selected").each(function(){
AddonstypeSingle.push($(this).val());
});
答案 2 :(得分:0)
获取所有选项的选择器是:
$("div.single option").each( function (){} );
获取所有选定选项的选择器是:
$("div.single option:selected").each( function (){} );