私の最初の投稿ですので、優しくしてください。 1〜100の範囲の最小値と最大値を持つ範囲スライダがあります。 私の価格構成は、ユーザーが範囲スライダでどれだけ多くを選ぶかに依存して£1.99から£1.19と言います。 これを達成するための最良の方法は、switch文またはif else文のいずれかを使用してください。 選択された値はPHP経由でバックポストで検証されるので、私はこの質問のセキュリティについて心配していません。私が何かを見逃してしまった場合は、お詫びします。jQueryを使用して、範囲スライダで設定された数値に応じて価格を変更する
$(document).ready(function() {
\t $("#slider").slider({
\t \t range: "min",
\t \t animate: "slow",
\t \t value:1,
\t \t min: 1,
\t \t max: 100,
\t \t step: 1,
\t \t slide: function(event, ui) {
\t \t \t update(1,ui.value); //changed
\t \t }
\t });
\t //Inital values when page loads, amount is set to 1 as this is the minimum a user can buy.
\t $("#amount").val(1);
\t $("#price").val(1.99);
\t $("#amount-label").text(0);
\t $("#price-label").text(0);
\t update();
});
//changed. now with parameter
function update(slider,val) {
\t //changed. Now, directly take value from ui.value. if not set (initial, will use current value.)
\t var $amount = slider == 1?val:$("#amount").val();
\t var $price = $("#price").val();
\t
\t
\t $total = "£" + ($amount * $price).toFixed(2);
\t $("#amount").val($amount);
\t $("#amount-label").text($amount);
\t $("#price").val($price);
\t $("#price-label").text($price);
\t $("#total").val($total);
\t $("#total-label").text($total);
\t
\t $('#slider a').html('<label><span class="glyphicon glyphicon-chevron-left"></span> '+$amount+' <span class="glyphicon glyphicon-chevron-right"></span></label>');
}
こんにちは。トップチップ - javascriptで比較を行うときは、==の代わりに===を使用します。これは、3 =バージョンにはタイプ比較が含まれているからです。これは通常あなたが望むものです。 Googleにはそこにはたくさんの良い説明があります。まもなくあなたの質問に答えて、すばらしい配列変換を使って、ある程度のjsのエキスパートが1分以内に来ることを期待しています。 –
あなたが数量と価格の間に関係があるとすれば、これは数学的ではなく商業的な進歩だと考えることができるので、それぞれ1.99、2 = 1.90、3 = 1.80、5 = 1.50、10 = 1.00各。私はこれが電子商取引サイトのためのものならば、あなたがこのタイプの商業的なランダム性を望む現実世界を反映すると思っています。正しい? –
あなたの要件と同じ領域に見えるので、これを見てみたいかもしれません。 http://stackoverflow.com/questions/967372/jquery-slider-how-to-make-step-size-change –