2017-02-09 56 views
0

我成功地從this source設置了4個步驟的php表單。 只有一個任務遇到問題:在第一頁上我插入了一個單選按鈕。根據選擇(「是」或「否」),應跳過步驟3。隱藏根據單選按鈕選擇從多步表單步驟

我一直在嘗試2個小時,並在互聯網上搜索 - Java腳本不是我的實力。我怎麼能實現它?下面的JavaScript我使用:

<script type="text/javascript"> 
$(document).ready(function(){ 
var current = 1,current_step,next_step,steps; 
steps = $("fieldset").length; 
$(".next").click(function(){ 
if(current=='2' && $('input[name="Guest_sel"]:checked').val()=='No') { 
/* HERE I DON'T KNOW WHAT TO PUT. THE ALERT COMES AT THE RIGHT POINT AFTER STEP 2 IF I SELECTED "NO" FOR "Guest_sel". */ 
alert("Test"); 
} 
current_step = $(this).parent(); 
next_step = $(this).parent().next(); 
next_step.show(); 
current_step.hide(); 
setProgressBar(++current); 
}); 
$(".previous").click(function(){ 
current_step = $(this).parent(); 
next_step = $(this).parent().prev(); 
next_step.show(); 
current_step.hide(); 
setProgressBar(--current); 
}); 
setProgressBar(current); 
// Change progress bar action 
function setProgressBar(curStep){ 
var percent = parseFloat(100/steps) * curStep; 
percent = percent.toFixed(); 
$(".progress-bar") 
.css("width",percent+"%") 
.html(percent+"%");  
} 
}); 
</script> 

在第6行,我已經設置了正確的if語句(如果(當前== '2' & & $(「輸入[名稱= 」Guest_sel「]:檢查').val()=='否'))。但是我必須在if語句中加入什麼?

我以爲所有的步驟都應該有1-4個數字。如果current_step = $(this).parent()爲「1」,例如,next_step應該是「2」,依此類推。所以我試過current_step = $(this).parent()+ 1;以及類似於if語句的東西,但沒有一個可行。我還嘗試在alert中輸出上面的任何變量來理解存儲在那裏的內容,但只有「undefined」變量。 JavaScript讓我發瘋。 :-(

任何想法把內部的if語句,使其跳過步驟3中的情況下單選按鈕「Guest_sel」 =「否」?謝謝你這麼多傢伙!

+0

'this = $(this).parent()。next();'將它添加到brakets,tha t應該讓它相信它在step3上,所以它會顯示第4步而不是3 – LordNeo

+0

感謝LordNeo!不幸的是,這使得整個事情不再工作。這是奇怪的,我以前也經歷過:如果我將該行插入到if語句中 - 即使條件不是肯定的(沒有選擇「Yes」或「Yes」),整個事情也不再起作用。甚至不能從步驟1繼續到步驟2.無論如何。不知道爲什麼? –

+0

嘗試將代碼放入片段或jsfiddle或codepen中,以便我們可以更好地進行調試。同樣,控制檯應該給你一些關於它的錯誤。 – LordNeo

回答

1

OK,我想它。從我花了一段時間,但由於用的jsfiddle的TIPP工作文件是在這裏:http://jsfiddle.net/gkxvLs9u/3/

NEXT_STEP = $(本).parent()next()的下一個()的伎倆:。

$(".next").click(function(){ 
current_step = $(this).parent(); 
if(current=='2' && $('input[name="Guest_sel"]:checked').val()=='No') { 
next_step = $(this).parent().next().next(); 
++current; 
} else { 
next_step = $(this).parent().next(); 
} 
next_step.show(); 
current_step.hide(); 
setProgressBar(++current); 
}); 
相關問題