0

当用户加载它时,我在页面上动态生成一个下拉列表。我想使用 jquery 或 javascript 获取下拉列表的值。

棘手的部分是下拉列表将具有这样的值:“我爱兔子(19.95 美元)”

我想获取下拉列表的值,然后隔离括号内的值。有任何想法吗?

干杯!

4

2 回答 2

7

获得价值很容易,使用val(). 那将是一个字符串。

然后,您只需使用正则表达式(可能使用捕获组)来获取值;例如:

var value, m, innerValue;
value = $("selector for select box").val();
m = /\(([^)]+)/.exec(value);
if (m) {
    innerValue = m[1];
}

那个正则表达式说:“找到一个(然后捕获它后面不是一个)”的所有东西。然后我们取捕获组的值。

于 2012-04-30T17:14:00.970 回答
3

您不能选择以下格式:

<select name="opinions_price">
<option value="19.45">I love rabbits (£19.45)</option>
<option value="12.45">I hate parakeets (£12.45)</option>
<option value="3.24">I am indifferent to possums (£3.24)</option>
</select>

然后只需执行以下操作:

var price = $('select option:selected').val();

如果您想改用数据属性(假设选择处于循环中,您知道该怎么做):

<select name="opinions_price">
<?php foreach($things as $thing) { ?>
<option data-price="<?php echo $thing['price']; ?>" data-id="<?php echo $thing['id']; ?>">[..]</option>
<?php } ?>
</select>

然后只需执行以下操作:

var price = $('select option:selected').data('price');
var id = $('select option:selected').data('id');

节省(可能)昂贵的正则表达式?

于 2012-04-30T17:19:05.710 回答