Скрипт Jquery не оценивает переменную элемента - PullRequest
0 голосов
/ 22 февраля 2011
$(".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 в предельную переменную, а затем отработайте ставку, основанную на потенциал_виннингс, и установите его.

Я пытался отладить это столько, сколько смогу, но яне могу выработать правильный способ сделать это.Кажется, что строки, которые не работают, таковы: var winnings = $ ("# потенциальный_винн"). Val ();выигрыш никогда не оценивается как меньший, чем лимит.Если я заменю выигрыши переменной, которая ниже предела, он оценивается правильно.

AND: $ (". Input_wager_container"). Html (Math.round ((limit / multiplier) * 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> 

Любая помощь будет принята с благодарностью.Спасибо.

ОБНОВЛЕНО: Это решение я использовал после указаний из этой темыСпасибо за помощь.

    $(".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');
    }
});

Ответы [ 2 ]

1 голос
/ 22 февраля 2011

.val() работает только для элементов управления вводом .Вам необходимо получить содержимое с помощью .text():

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

Кроме того, вы должны «привести» возвращаемую строку в целое число, вызвав либо parseInt(), либо использовать +.

* 1011.*

То же самое относится и к вашей переменной 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 голосов
/ 22 февраля 2011
  1. #potential_winnings - вы должны использовать html () для установки или получения значения из него.
  2. при использовании этого значения также используйте его с parseFloat ()

Наконец-то это работает для меня:

<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>

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...