Jump to content
nibbler

[Resolvido] [ Javascript / jquery ] Saltar divs com radio buttons

Recommended Posts

nibbler

Boas,

Estou num projecto que é um especie de manual, ou seja existem perguntas, cada pergunta tem opção sim ou não e vão aparecendo mais perguntas conforme a escolha que o utilizador faz.

No entanto começei a mexer à pouco tempo em javascript e jquery e fazendo algumas pesquisas deparei-me com um topic no stackoverflow onde alguem tinha uma questão semelhante à minha mas a unica diferença é que ele utiliza uma select box e eu necessito de botões.

Tentei modificar o código de select box para radio buttons mas não "salta" as divs, continua numa sequência.

Deixo-vos os exemplos:

http://jsfiddle.net/gN9Xg/3/ <- Este é o codigo inicial a funcionar com a select box

http://jsfiddle.net/5rXn7/5/ <- O código que alterei (Apenas alterei os inputs para radio button)

As funções são as seguintes:

function doSubmit(obj)
{
var oQuestion = $(obj).parents(".question").first();
var skipCount = parseInt(oQuestion.find(".skipper").val(), 10);
if (isNaN(skipCount) || skipCount < 0)
 skipCount = 0;
var oNext = oQuestion.next();
for (var i = 0; i < skipCount; i++)
 oNext = oNext.next();
oNext.data("prev_index", oQuestion.index());
oNext.show();
oQuestion.hide();
}
function backToPrev(obj)
{
var oQuestion = $(obj).parents(".question").first();
var index = parseInt(oQuestion.data("prev_index"), 10);
if (isNaN(index) || index < 0)
 oQuestion.prev().show();
else
 $(".question").eq(index).show();
oQuestion.hide();
}

Verifiquei que no entanto se alterar o valor de

if (isNaN(skipCount) || skipCount < 0)
 skipCount = 0;

para

if (isNaN(skipCount) || skipCount < 0)
 skipCount = 1;

ele salta directamente para a div 3.

É possivel isto ser alterado ou necessito de ir por outro caminho ? Se me poderem dar algumas guidelines ficava agradecido.

Desde já agradeço a vossa ajuda.

Edited by Rui Carlos
GeSHi

Share this post


Link to post
Share on other sites
Devexz

function doSubmit(obj)
{
var oQuestion = $(obj).parents(".question").first();

//aqui procura-se o valor da class .skipper
  var skipCount = parseInt(oQuestion.find(".skipper").val(), 10);
  //como nao é encontrado entra no if
if (isNaN(skipCount) || skipCount < 0) {

//se nós tivermos um input e esse input tem um valor int o skicount fica com esse valor
 skipCount = $(obj).val();
 if (isNaN(skipCount) || skipCount < 0) {
  skipCount = 0;
 }


}

e o html fica assim ( deixei o select e o radio )

<div class="question" id="question1" >
		 <h2>Question 1</h2>
		 <HR>
		 <p>Are you thirsty? </p>
		 <div class="answer-fields">
			 <div class="input-field ui-grid-a" >
				 <div class="ui-block-a" style="width:80%">
					 <select name="question1.1" class="skipper">
					 <option name="question1.1" ano="1" qid="question1" value="yes" checked/>Yes
 <option name="question1.1" ano="1" qid="question1" value="1" />No
 </select>


 <input type = "radio" name = "question1.1" ano="1" qid="question1" value="yes" onclick="doSubmit(this)">

 <input type = "radio" name = "question1.1" ano="1" qid="question1" value="1" onclick="doSubmit(this)">
 </div>




				 <div class="ui-block-b" style="width:10%">
					 <a data-role="button" data-mini="true" data-inline="true" href="#" class="remove-button" style="display:none;" >X</a>
				 </div>
			 </div>
		 </div>
		 <BR>
		 <div data-role="controlgroup" data-type="horizontal" >
			 <input type=submit id="backbutton" value="Back" onclick="backToPrev(this)">
			 <input type=submit id="button" value="Submit" onclick="doSubmit(this)" >

		 </div>
	 </div>

A funcionar:

http://jsfiddle.net/Devesh/p6ynL/

Edited by Devexz
  • Vote 1

Contador de calorias: caloriaspordia.com

Share this post


Link to post
Share on other sites
nibbler

Boas Devexz ,

Peço desculpa de só responder agora mas não me foi possivel vir cá mais cedo, desde já muito obrigado era mesmo isso e já agora obrigado pelos comments no codigo.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.