嵌套的IF与jQuery的帮助

时间:2009-03-26 15:45:41

标签: jquery

我是JQuery的新手 - 认为为我正在参与的项目选择它可能会很好。基本上我想创建一种形式,每次回答表单上的问题时,都会根据答案出现一个新问题。我为它编写了一些伪代码,可能用PHP编写。问题是当前版本有多个页面包含每一种可能性。

我需要一种高效且易于维护和可修改的方法来创建它。

为了给出更多背景知识,以下是它的工作原理..

每个问题都有答案。根据答案,在得出某个结论之前会询问另一个问题,依此类推。大约有25种不同的可能结果。

有没有人知道我可以用来做这样的事情的任何引用,或者当前有什么类似的东西?

谢谢, 肖恩

4 个答案:

答案 0 :(得分:1)

试试这个..未经测试

<form>
<label id="id1">Do you like turkey?</label>
<input type="radio" name="group1" value="Y" onclick="ShowYes(1);">Yes
<input type="radio" name="group1" value="N" onclick="ShowNo(1);" >No
</ br>
<div id="Set2">
    <label id="id2">Do you like mirrors?</label>
    <input type="radio" name="group2" value="Y" onclick="ShowYes(2);">Yes
    <input type="radio" name="group2" value="N" onclick="ShowNo(2);" >No
</div>
<div id="Set3">
    <label id="id3">Do you like winter?</label>
    <input type="radio" name="group3" value="Y" onclick="ShowYes(3);">Yes
    <input type="radio" name="group3" value="N" onclick="ShowNo(3);" >No
</div>
<div id="Set4">
    <label id="id4">Do you like dogs?</label>
    <input type="radio" name="group4" value="Y" onclick="ShowYes(4);">Yes
    <input type="radio" name="group4" value="N" onclick="ShowNo(4);" >No
</div>
<div id="Set5">
    <label id="id4">Do you like winter?</label>
    <input type="radio" name="group5" value="Y" onclick="ShowYes(5);">Yes
    <input type="radio" name="group5" value="N" onclick="ShowNo(5);" >No
</div>

function ShowYes(questionSet){
switch(questionSet)
{
    case 1:
      $(Set2).show();
      break;
    case 2:
      $(Set3).show();
        break;
    default:
      alert();
}}

function ShowNo(questionSet){
switch(questionSet)
{
    case 1:
      $(Set4).show();
      break;
    case 2:
      $(Set5).show();
        break;
    default:
      alert();
}}

然后在你的html顶部添加document.ready ...我确定隐藏所有的div都可以在.each()中完成..

$(document).ready(function(){
 $('#Set2').hide();
 $('#Set3').hide();
 $('#Set4').hide();
 $('#Set5').hide();}

答案 1 :(得分:0)

如果您没有很多不同的问题,可以将它们加载到JS数组中并从那里获取;无需使用AJAX。

另一方面,如果您有很多问题并且会向浏览器加载数百KB,那么您可能需要开发一个AJAX版本。

然而,我相信我仍然不明白这个问题......你究竟遇到了什么问题? jQuery的?算法? AJAX?如何创建标记来实现这一目标?

也许发布您当前的代码可能会让我们更好地帮助您。

答案 2 :(得分:0)

jquery forms plugin可能是开始思考如何解决这个问题的好方法。我认为你会发现实施它几乎是微不足道的。

答案 3 :(得分:0)

考虑格式化数据的一种方法是XML树,每个可能的响应都列为“父”问题的子项:

<question text="Is blue your favorite color" >
  <question answered="yes" text="Is 98.6 degrees your normal internal temperature"/>
  <question answered="no" text="Is green your favorite color">
    <question answered="yes" text="Do you have green eyes" />
    <question answered="no" text="Is your favorite color white"/>
  </question>
<question>