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 に答える