I am dynamically generating a dropdown list on the page when a user loads it. I'd like to get the value of the dropdown using jquery or javascript.
The tricky part is that the dropdown will have a value as such: "I love Rabbits ($19.95)"
I want to get the value of the dropdown and then isolate the value inside of the brackets. Any ideas?
Cheers!
Getting the value is easy, use val()
. That will be a string.
Then you just grab the value with a regex , probably with a capture group; for instance:
var value, m, innerValue;
value = $("selector for select box").val();
m = /\(([^)]+)/.exec(value);
if (m) {
innerValue = m[1];
}
That regex says: "Find a (
and then capture everything following it that isn't a )
". Then we take the value of the capture group.
Could you not have your select in the following format:
<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>
Then simply do:
var price = $('select option:selected').val();
If you want to use the data attributes instead (assume the select is in a loop, you know how to do that):
<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>
Then simply do:
var price = $('select option:selected').data('price');
var id = $('select option:selected').data('id');
Saves a (possibly) expensive Regex?
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.