我是堆栈新手,jQuery新手。我在这里发现了一些反应,所以我收集了这些“计算器”。功能正常,但有一个问题,名为“hodnota”的变量不会根据elseif语句更改值。
请问,问题出在哪里,不认识任何人? : - )
我只需要根据“if conditions”中的变量值以及select(.ninja-forms-field)更改时更改名为“hodnota”的值...
我的代码在这里......
<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>
答案 0 :(得分:0)
这是如何解决问题的一些小提琴...... 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());