2011-02-22 3 views
0
$(".panel_wager_container input").change(function(event) 
{ 
    var wager = $(this).val(); 
    var multiplier = $('#multiplier').html(); 
    var limit = 15.00; 
    var winnings = $("#potential_winnings").val(); 
    if(wager - 0 == wager && wager.length > 0) { 
     if(winnings <= limit) { 
      $("#potential_winnings").html(Math.round((wager * multiplier) * 100)/100); 
     } else { 
      $("#potential_winnings").html = limit; 
      $(".panel_wager_container input").html(Math.round((limit/multiplier) * 100)/100); 
     } 
    } else { 
     $("#potential_winnings").html('0.00'); 
    } 
}); 

このjqueryコードが機能していない理由はわかりません。目的は、入力変数を取り込んで乗数で倍数化して賞金を取り出すことです。私は最大の賞金を15.00に制限したい。賞金が上限更新額#potential_winningsを下回っている場合。賞金が上限を上回っている場合は、#potential_winningsを限度変数に設定し、potential_winningsに基づいて賭け金を決めてそれを設定します。Jqueryスクリプトは要素変数を評価しません

私はこれをできる限りデバッグしようとしましたが、正しい方法で解決することはできません。仕事をしない行は、次のようになります。 var winnings = $( "#potential_winnings")。val(); 賞金は今までには限界以下と評価されませんでした。私が賞金を限界より低い変数に置き換えると、それは正しく評価されます。

AND: $( "。panel_wager_container input").html(Math.round((制限/乗数)* 100)/ 100); この行は、選択した要素に変更を出力しません。これはhtmlです

それはに取り組んこのスクリプト:

<div class="panel_wager_inform">Maximum Wager: 170.00</div><br /> 
        <div class="panel_wager_container"> 
        <img src="/img/rounded/input/left.png" class="left" alt="" /><img src="/img/rounded/input/right.png" class="right" alt="" /><div class="input text required"><label for="BetWager">Wager</label><input name="data[Bet][wager]" type="text" value="170.00" id="BetWager" /></div>       
        </div><br /> 
        <div class="clear"></div> 
        <strong>Multiplier:</strong> <span id="multiplier">11.85</span>x<br /><br /> 
        <strong>Potential Winnings:</strong> 
        $<span id="potential_winnings">2,014.84</span> 

任意の助けいただければ幸いです。ありがとうございました。

UPDATED:これは、このスレッドの指針の後に私が使用した解決策でした。お手伝いありがとう。

$(".panel_wager_container input").change(function(event) 
{ 
    var wager = $(this).val(); 
    var multiplier = $('#multiplier').html(); 
    var limit = 15.00; 
    var winnings = Math.round((wager * multiplier) * 100)/100; 
    if(wager - 0 == wager && wager.length > 0) { 
     if(winnings <= limit) { 
      $("#potential_winnings").html(Math.round((wager * multiplier) * 100)/100); 
     } else { 
      $("#potential_winnings").html(limit); 
      $(".panel_wager_container input").val(Math.round((limit/multiplier) * 100)/100); 
     } 
    } else { 
     $("#potential_winnings").html('0.00'); 
    } 
}); 
+0

入力がフォーカスを失ったときにのみ変更イベントをリリースしますか? –

答えて

1

.val()入力がを制御するためにのみ機能します。あなたは.text()で内容を取得する必要があります。

var winnings = $("#potential_winnings").text(); 

さらに、あなたがparseInt()+を使用するかを呼び出すことによって整数に返された文字列を「キャスト」する必要があります。

if(+winnings <= limit) { 
} 

変数はmultiplierと同じです。例:

$(".panel_wager_container input").change(function(event) 
{ 
    var wager  = +$(this).val(), 
     $multiplier = $('#multiplier'), 
     $potentialwinnings = $("#potential_winnings"), 
     multiplier = $multiplier.html(), 
     limit  = 15.00, 
     winnings = +$("#potential_winnings").text(); 

    if(wager.length > 0) { 
     if(winnings <= limit) { 
      $potentialwinnings.html(Math.round((wager * multiplier) * 100)/100); 
     } else { 
      $potentialwinnings.html = limit; 
      $(".panel_wager_container input").html(Math.round((limit/multiplier) * 100)/100); 
     } 
    } else { 
     $potentialwinnings.html('0.00'); 
    } 
}); 
+0

助けてくれてありがとう。私は、.text()を使う必要があることを知りませんでした。 – RJaus

0
  1. #potential_winnings - あなたはそれから値を設定または取得するためのHTMLを()を使用する必要があります。
  2. もparseFloatは(とそれを使用し、その値を使用して)

最後に、この1は私の作品:

<script> 
$(".panel_wager_container input").change(function(event) 
{ 
    var wager = $(this).val(); 
    var multiplier = $('#multiplier').html(); 
    var limit = 15.00; 
    var winnings = $("#potential_winnings").html(); 
    if(wager - 0 == wager && wager.length > 0) { 
     if(parseFloat(winnings) <= limit) { 
      $("#potential_winnings").html(Math.round((wager * multiplier) * 100)/100); 
     } else { 
      $("#potential_winnings").html(limit); 
      $(".panel_wager_container input").html(Math.round((limit/multiplier) * 100)/100); 
     } 
    } else { 
     $("#potential_winnings").html('0.00'); 
    } 
}); 

</script> 

・ホープ、このことができます。

関連する問題