0

ドロップダウンリストの選択時に値を追加できるかどうか疑問に思っています。

例: 次のいずれかが選択されている場合..

<select class="item_print-colour">
    <option value="0" selected="selected" disabled="disabled">Print Colour..</option>
    <option value="B&W" value="Print Colour:"> Black And White </option>
    <option value="Full-Colour"> Full Colour </option>
</select>

次の data-base_price を 0.20 増やしてほしい:

<span class="item_price cd_price" data-base_price="0.53"></span>


私がすでに試し たことはありますが、何を試しても、選択時に変更することはできません:

$(".item_print-colour").on("select", function() {
    var base_price = $(".cd_price").data("base_price");
    var addition = 0;

    if (this.value = B&W) addition = 0.20;
    $(".cd_price").text((base_price + addition).toFixed(2));
    }).trigger("select");

編集

また、data-base_price を決定する他の要因もあります。そのため、現在 database-base_price にあるものに追加しようとしています。

4

3 に答える 3

1
  • on('change'...選択しない
  • if(this.value == 'B&W')
  • 次のようにリファクタリングできます。base_price += 0.2;
  • あなたはする必要はありませんtrigger('select');
于 2012-07-16T14:54:17.317 に答える
0

おそらく、引用符を見逃しただけですか?

if (this.value == "B&W")
...
于 2012-07-16T14:51:54.560 に答える
0

次のことを試してください。

$(".dvd_case_quantity").on("change", function() {
    var base_price = $(".cd_price").data("base_price");
    var addition = (this.value == 'B&W' ? 0.20 : 0);
    var newPrice = (base_price + addition).toFixed(2);
    $(".cd_price").text(newPrice);
});

注: 上記のソリューションは、newPriceを別の変数に分割します。そのままにしておくこともできますが、テストをより簡単にする、よりデバッグしやすいスタイルを採用しようとしています。

于 2012-07-16T14:56:49.110 に答える