我感兴趣的是从下拉列表中获取$ option_value ['price']字符串,而不是。使用.value返回更晚的。
我选择了在foreach()循环中创建的菜单。下降将持有价格选择。我试图给每个产品它自己的id,所以我可以使用javascript onChange()函数来更新屏幕上的价格。
select标签如下所示:
<select name="option[<?php echo $option['product_option_id']; ?>]" class="select_options" id="select_<?php echo $product['product_id']; ?>" onchange="getIt(this);">
和javascript:
function getIt(el) {
var id = el.id;
a = document.getElementById(id).text;
alert(a);
}
警告id给我select_some号码。所以我可以看到它正在获得id。但警告a给我[对象HTMLSelectElement]。
所以我试过
alert(a.options.selectedIndex.value);
并且身份不明。
<?php if ($product['options']) { ?>
<div class="options" id="option_<?php echo $product['product_id']; ?>">
<?php foreach ($product['options'] as $option) { ?>
<?php if ($option['type'] == 'select') { ?>
<div id="option-<?php echo $option['product_option_id']; ?>" class="option select_option">
<select name="option[<?php echo $option['product_option_id']; ?>]" class="select_options" id="select_<?php echo $product['product_id']; ?>" onchange="getIt(this);">
<option value=""><?php echo $text_select; ?></option>
<?php foreach ($option['option_value'] as $option_value) { ?>
<option value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
<?php if ($option_value['price']) { ?>
(<?php echo $option_value['price_prefix']; ?><span id="newPrice"><?php echo str_replace('.00','.',$option_value['price']); ?></span>)
<?php } ?>
</option>
<?php } ?>
</select>
</div>
<?php } ?>
答案 0 :(得分:3)
更改:
a = document.getElementById(id).text;
要:
a = document.getElementById(id).value;
这将提醒所选选项的值。
答案 1 :(得分:1)
尝试使用此代码,将document.getElementById(id).value
代替document.getElementById(id).text
function getIt(id) {
a = document.getElementById(id).value;
alert(a);
}
答案 2 :(得分:1)
“有没有办法让我在下拉列表中显示文字($ xx.xx),而不是值?”
我认为这就是你要找的东西:
function getIt(el) {
var a = el.options[el.selectedIndex].text;
alert(a);
}
显然, el.selectedIndex
为您提供了当前所选选项的索引,您可以将其用作选项集el.options
的索引,然后获取该选项的text
。 text
属性属于每个选项,而不属于select。
(请注意,如果未选择任何选项,selectedIndex
将为-1
。)
您根本不需要使用getElementById()
,因为您已经引用了该元素el
。
答案 3 :(得分:0)
当你像getit(this)
那样传递时,你应该像这样编码
function getIt(el) {
var id = el.id;
a = document.getElementById(id).value;
alert(el.value); //you can directly alert like this
}