Въпрос за JavaScript множество от математически действия

Knoppix_

Registered
Здравейте

искам да взимам стойности от няколко инпута и да извеждам стойност
като имам 3 полета който се сумират и общият сбор се дели на 4-то поле

Това е кода

http://jsfiddle.net/HPt6y/

Някой може ли да каже какво съм объркал че ми се връща стойност NaN
 
Работи си кода , пробвай 5 5 6 4 = 14
но така е написан,че трябва да въведеш някаква стойност в последния input че да отчете действието (точно заради keyup())
Код:
$('#autoban_euro, #autoban2_euro, #autoban3_euro, #hgs_izrazhodeno').keyup
тоест когато през всички се мине и се натисне някой клавиш , чак тогава ще го отчете...

Код:
$(document).ready(function () {
    $('#kurs').keyup(function () {
        var a = $("#autoban_euro").val();
        var b = $("#autoban2_euro").val();
        var d = $("#autoban3_euro").val();
        var e = $("#kurs").val();
        var c = (parseInt(a) + parseInt(b) + parseInt(d)) / parseInt(e);
        $("input[name=hgs_izrazhodeno]").val(c);
    });
});
Ето така ще се оправи.
пс:Тествах го!
 
Hous каза:
Работи си кода , пробвай 5 5 6 4 = 14
но така е написан,че трябва да въведеш някаква стойност в последния input че да отчете действието (точно заради keyup())
Код:
$('#autoban_euro, #autoban2_euro, #autoban3_euro, #hgs_izrazhodeno').keyup
тоест когато през всички се мине и се натисне някой клавиш , чак тогава ще го отчете...

Код:
$(document).ready(function () {
    $('#kurs').keyup(function () {
        var a = $("#autoban_euro").val();
        var b = $("#autoban2_euro").val();
        var d = $("#autoban3_euro").val();
        var e = $("#kurs").val();
        var c = (parseInt(a) + parseInt(b) + parseInt(d)) / parseInt(e);
        $("input[name=hgs_izrazhodeno]").val(c);
    });
});
Ето така ще се оправи.
пс:Тествах го!
Пак се бъгва така трябва последното променено поле да е kurs ами ако някой реши да промени нещо назад нали няма да го отчете. Иначе към автора мисля че грешката е че селектираш hgs_izrazhodeno вместо kurs + 1 проверка да се отървеш от това NaN. Не съм добър в javascript и jQuery така че ако има по-лесен начин не е нужно да ми се карате ето:
[js]$(document).ready(function () {
$('#autoban_euro, #autoban2_euro, #autoban3_euro, #kurs').keyup(function () {
var a = $("#autoban_euro").val();
var b = $("#autoban2_euro").val();
var d = $("#autoban3_euro").val();
var e = $("#kurs").val();
var c = (parseInt(a) + parseInt(b) + parseInt(d)) / parseInt(e);
if(a != '' && b != '' && d != '' && e != '')
{
$("input[name=hgs_izrazhodeno]").val(c);
}
});
});[/js]
 
Аз само да кажа:
Принципно ако това ще се записва в дб , е лош вариант да е с JS защото може да се "редактира" от нежелатели,a ако е само за показване пред потребителите може.
 
Hous каза:
Аз само да кажа:
Принципно ако това ще се записва в дб , е лош вариант да е с JS защото може да се "редактира" от нежелатели,a ако е само за показване пред потребителите може.

Дай друг пример с какво да е. С PHP как ще стане т.е. как да взема стойностите от полета и да извърша действия с тях?
 
ivo75 каза:
Hous каза:
Аз само да кажа:
Принципно ако това ще се записва в дб , е лош вариант да е с JS защото може да се "редактира" от нежелатели,a ако е само за показване пред потребителите може.

Дай друг пример с какво да е. С PHP как ще стане т.е. как да взема стойностите от полета и да извърша действия с тях?

PHP:
$result = ( $_POST['autoban_euro'] + $_POST['autoban2_euro'] + $_POST['autoban3_euro'] ) / $_POST['kurs'] ;

if((int)$result)
echo $result;
 
Използвай функцията isNaN на js, за да провериш дали ще ти върне "NaN". Ако не е NaN, слагаш променливата c в петото поле. Така стойности NaN няма да връща.
http://jsfiddle.net/HPt6y/2/
[js] if(!isNaN(c))
{
$("input[name=hgs_izrazhodeno]").val(c);
}[/js]
 

Back
Горе