2015-04-21 4 views
0

Я пытаюсь отобразить итоговую цену в метке sum, умножив qtyTxt значение (введено пользователем) с price. Но это не сработает, заявление if никогда не достигается.Значение изменения текстового поля jQuery не работает

<input type="text" name="qtyTxt" value="1" size="2" style="width: 25px"/> 
<label id="price">${adClicked.price}</label> 
<label id="sum">${adClicked.price}</label> 
<input type="hidden" name="id" value="${adClicked.id}"/> 

<script> 
$(".qtyTxt").bind('change', function() { 
    var sum=$(("#price").val())* ($(this).val()); 
    $("#sum").val('Rs.'+sum); 
}); 
</script> 

Там нет ошибок в консоли и $("#sum").val('Rs.'+sum); работает отлично.

+1

Что такое симптом из «не работает»? Нет выхода? Неверный выход? – user3154108

+1

'val' используется для получения значения элементов управления формы, а не элемента' label'. Вместо этого используйте метод '.text()'. – undefined

ответ

2

1) Использовать parseInt() или parseFloat() Функция parseInt() анализирует строку и возвращает целое число.

2) Другая ошибка Не используйте val() для этикетки вместо использования text() для этикетки

var sum= parseInt($("#price").text() , 10) * parseInt($(this).val() ,10); 

код будет

$(".qtyTxt").bind('change', function() { 
    var sum= parseInt($("#price").text() , 10) * parseInt($(this).val() ,10); 
    $("#sum").text('Rs.'+sum); 
}); 
+2

Также, короли jQuery не используют метод 'text' для получения значения ввода, не так ли? – undefined

+0

@Vohuman - Хорошее уведомление спасибо –

+0

@Vohuman - Мне понравилось, что вы назвали Kings of Jquery. Я как можно скорее меняю свой профиль –

0

Два выпуска:

1) У вас есть ошибка в ваш код, $(("#price").val()) должен быть $("#price").text() или $("#price").html()

2) Вы должны проанализировать значения, прежде чем делать математические вычисления:

var sum=parseInt($("#price").text(),10)*parseInt($(this).val(),10) ; 
Смежные вопросы