Я новичок в стеке и новый в jQuery. Я нашел здесь некоторые реакции, поэтому я собираю этот "калькулятор". Он функциональный, но есть одна проблема, переменная, называемая "hodnota", не меняет значение в соответствии с инструкцией elseif.
Пожалуйста, где проблема, никто не знает? :-)
Просто мне нужно изменить значение под названием "hodnota" на основе значений переменных в "условиях if" и при изменении поля select (.ninja-forms-field)...
Мой код здесь...
<script>
var vyska;
var barva;
var rozmery;
var $hodnota = $(this.hash);
var pocet;
rozmery=jQuery("#ninja_forms_field_165 :selected").text();
barva=jQuery("#ninja_forms_field_167 :selected").text();
vyska=jQuery("#ninja_forms_field_166 :selected").text();
if(/200x200cm/i.test(rozmery)&&/140/i.test(vyska)&&/režná/i.test(barva)){
hodnota=2380;
}else if(/200x200cm/i.test(rozmery)&&/150/i.test(vyska)&&/režná/i.test(barva)){
$hodnota=2480;
}else if(/200x200cm/i.test(rozmery)&&/160/i.test(vyska)&&/režná/i.test(barva)){
$hodnota=2780;
}else if(/205x205cm/i.test(rozmery)&&/140/i.test(vyska)&&/režná/i.test(barva)){
$hodnota=2480;
}else if(/205x205cm/i.test(rozmery)&&/150/i.test(vyska)&&/režná/i.test(barva)){
hodnota=2580;
}else if(/205x205cm/i.test(rozmery)&&/160/i.test(vyska)&&/režná/i.test(barva)){
$hodnota=2880;
}else{
$hodnota=0;
}
jQuery('.ninja-forms-field').change(function(){
alert($hodnota);
});
</script>
Вот несколько вопросов, как решить проблему... JSFIDDLE
function spocitejHodnotu() {
var rozmer = jQuery('#ninja_forms_field_165 option:selected').text();
var vyska = jQuery('#ninja_forms_field_166 option:selected').text();
var barva = jQuery('#ninja_forms_field_167 option:selected').text();
var is200 = /200x200cm/i.test(rozmer);
var is205 = /205x205cm/i.test(rozmer);
var is140 = /140/i.test(vyska);
var is150 = /150/i.test(vyska);
var is160 = /160/i.test(vyska);
var isRezna = /režná/i.test(barva);
var isSeda= /šedá/i.test(barva);
var isSahara=/sahara/i.test(barva);
var isKhaki=/khaki/i.test(barva);
var is440=/režná 440g na m2/i.test(barva);
var hodnota = 0;
if (is200) {
if (is140) {
if (isRezna) {
hodnota=2380;
} else if(isSeda){
hodnota=2520;
} else if(isSahara){
hodnota=2520;
} else if(isKhaki){
hodnota=2600;
} else if(is440){
hodnota=3000;
}
}
if (is150) {
if (isRezna) {
hodnota=2480;
} else if(isSeda){
hodnota=2620;
} else if(isSahara){
hodnota=2620;
} else if(isKhaki){
hodnota=2700;
} else if(is440){
hodnota=3100;
}
}
if (is160) {
if (isRezna) {
hodnota=2780;
} else if(isSeda){
hodnota=2920;
} else if(isSahara){
hodnota=2920;
} else if(isKhaki){
hodnota=3000;
} else if(is440){
hodnota=3500;
}
}
}
if (is205) {
if (is140) {
if (isRezna) {
hodnota=2480;
} else if(isSeda){
hodnota=2620;
} else if(isSahara){
hodnota=2620;
} else if(isKhaki){
hodnota=2700;
} else if(is440){
hodnota=3100;
}
}
if (is150) {
if (isRezna) {
hodnota=2580;
} else if(isSeda){
hodnota=2720;
} else if(isSahara){
hodnota=2720;
} else if(isKhaki){
hodnota=2800;
} else if(is440){
hodnota=3250;
}
}
if (is160) {
if (isRezna) {
hodnota=2880;
} else if(isSeda){
hodnota=3020;
} else if(isSahara){
hodnota=3020;
} else if(isKhaki){
hodnota=3100;
} else if(is440){
hodnota=3600;
}
}
}
return hodnota;
}
// tohle se provede, pokud se změní nějaký select
jQuery('#ninja_forms_form_7').find('select').change(function () {
var hodnota = spocitejHodnotu();
alert(hodnota);
});
// tohle se provede při načtení skriptu
alert(spocitejHodnotu());