1

AJAX の更新された値から数値を取得し、それをサニタイズして $ を削除し、価格を特定の割合 (disPerc) だけ引き下げてから、顧客に値下げを通知するアラート ウィンドウを作成する jQuery / Java 関数を作成する必要があります。価格。

これが私がこれまでに持っているものです。私は最高のコーダーではないことに気付きました!

<head>
<script type="text/javascript">
function superSalePrice(discPerc) {
      var optionPrice = $("#productTotal").val();
  var applyDisc = optionPrice * discPerc;
  var rPrice = Math.round(applyDisc * 1) / 1;

  $("tB").click(function() {
  alert("With selected options, final price with discounts is $" + rPrice + "!");
  };
  )
};
</script>
</head>

//THEN the button
<input type="button" id="tB" value="Test Disc. Calc." onclick="superSalePrice(.85);" />

//THEN the option
<td id="productTotal" class="rowElement3"> $3,450.00</td>

値をサニタイズする方法がわからないため、その部分はまだ含まれていません。

ありがとう!

4

2 に答える 2

2

番号をサニタイズするには、正規表現を使用して数字またはドット以外のすべてを削除します。

>'   $3,450.00 '.replace(/[^0-9.]/g, '');
'3450.00'

これが私がJavaScriptを構造化する方法です

function superSalePrice(discount) {
  var price = $("#productTotal").text();
  price = parseFloat(price.replace(/[^0-9.]/g, ''));
  price *= discount;

  return Math.round(100 * price) / 100;
)

$('#tB').click(function() {
  var total = superSalePrice(0.85);
  alert("With selected options, final price with discounts is $" + total + "!");
};

そしてHTML:

<input type="button" id="tB" value="Test Disc. Calc." />

<td id="productTotal" class="rowElement3">$3,450.00</td>

また、HTML が無効です。<td>要素を<input>兄弟にすることはできません。

于 2012-09-30T04:50:44.293 に答える
0

いくつかの変更を加える必要があると思います。次のようにしてみてください。

function superSalePrice(discPerc) {
    var optionPrice = $("#productTotal").html(); // Changed from .val()
    var total = parseFloat(optionPrice.replace(/\$/g, "").replace(/,/g, ""));  // Added this
    var applyDisc = optionPrice * discPerc;
    var rPrice = Math.round(applyDisc * 1) / 1;  // Didn't check this

    // I'm not sure what the following is for, because you are just binding ANOTHER function every time the button is clicked. Maybe you just want the "alert" line
    $("tB").click(function() {
        alert("With selected options, final price with discounts is $" + rPrice + "!");
    });
}

コメントを読んでください!

于 2012-09-30T04:46:06.913 に答える