2013-05-24 2 views
1

У меня есть код для динамического создания текстовых полей. Я хочу умножить значения текстовых полей количества и скорости и отобразить результат в общем текстовом поле и опубликовать его на следующей странице.Умножьте два значения текстового поля и покажите результат в третьем текстовом поле в php, jquery

Скрипт http://jsfiddle.net/hEByw/, который показывает, как динамически генерируются текстовые поля.

Я попытался выполнить следующую часть кода, чтобы умножить два значения текстового поля, но не работает для меня. см. скрипку для полного кода.

//To multiply two textbox values 
     $('#qty + counter + ').keyup(calculate); 
     $('#rates + counter + ').keyup(calculate); 
     function calculate(e) 
    { 
     $('#total + counter + ').val($('#qty + counter +').val() * $('#rates +   counter+').val()); 
    } 

Может ли кто-нибудь предложить, где я ошибаюсь или правильно это делаю. Я новичок в jquery. Любая помощь приветствуется. Спасибо заранее.

+2

Код, который вы пытались не будет работать, так как '' qty' & rates' генерируются динамически, поэтому вам необходимо использовать HTTP ([** на() **.]://api.jquery.com/on/) для этого. Попробуйте это ... –

+0

Попробуйте использовать 'parseFloat()'. – Prashant16

ответ

0

Я думаю, что проблема здесь

$('#rates + counter + ') 

Это должно быть сделано, чтобы

$('#rates' + counter) 

EDIT:

Я проанализировал его jsfiddle, но проблема с вашей логикой. Как вы можете получить счетчик, когда вы нажимаете клавишу. Счетчик будет использоваться, и он будет не определен после добавления элементов управления.

Edit 2:

Наконец я пришел с ответом. мне пришлось подправить вокруг немного, но что я надеюсь, что он удовлетворит вас

Check Это JsFiddle Link

К сожалению для редактирования своей собственной ссылки

Я просто добавил атрибут заголовка и я использовал его вместо переменная счетчика.

e.target.title For the counter 

title = '+ counter + ' in your HTml 

Перейдите по ссылке. Надеюсь, что это помогает вам

+0

Спасибо Рохиту за помощь. – Rams

+0

Если это помогло вам по крайней мере, вы можете проголосовать ... U может видеть, что я борюсь за репутацию ...;) jus kidding – Rohith

0

Пока вы используете JQuery 1.4+:

$('#qty' + counter).live('keyup', function(){ calculate(counter); }); 
$('#rates' + counter).live('keyup', function(){ calculate(counter); }); 

function calculate(counter) 
{ 
    total = Number($('#qty' + counter).val())*Number($('#rates' + counter).val())' 
    $('#total' + counter).val(total); 
} 
0

Вы никогда не знаете, значение счетчика, когда триггеры событий.

$('#qty' + counter).on("blur", function() { 
    calculate($(this)); 
}); 
$('#rates' + counter).on("blur", function() { 
    calculate($(this)); 
}); 

function calculate(el) { 
var counter = el.attr("id").indexOf("qty") != -1 ? el.attr("id").substring(3) : el.attr("id").substring(5); 
var qty = isNaN(parseInt($('#qty' + counter).val())) ? 0 : parseInt($('#qty' + counter).val()); 
var rate = isNaN(parseInt($('#rates' + counter).val())) ? 0 : parseInt($('#rates' + counter).val()); 
$("#total" + counter).val(qty * rate); 

}

+0

Спасибо, ребята. Все ответы работали на меня. – Rams