在JS

时间:2015-09-20 04:18:27

标签: javascript arrays input points

JS新手!所以我的基本html设置了10个问题,并开始在阵列上,但我只需要澄清我应该做什么。我为每个答案分配了与相应结果相对应的值(4个中)。

我设置的数组只是为了帮助我想象,我不确定哪些值可以放在那里,因为它们对应于问题。那是我的第一个问题。

我的第二个是创建另一个数组来存储用户输入?我使用什么属性让JS计算得分并给出适当的结果?

到目前为止我的代码(我只提出了10个问题中的2个,因为其余的几乎是相同的格式)

<script>


// Questions and answers
var data ['Question 1','A','B','C','D',
      'Question 2','A','B','C','D',
      'Question 3','A','B','C','D',
      'Question 4','A','B','C','D',
      'Question 5','A','B','C','D',
      'Question 6','A','B','C','D',
      'Question 7','A','B','C','D',
      'Question 8'',A','B','C','D',
      'Question 9','A','B','C','D',
      'Question 10','A','B','C','D',]




</script>
</head>

<body>

<p id="quiz"></p>


<b id="one">1) Which lifestyle do you prefer?<br></b>

<p>
<p>
<label>
   <input id="firstone" type='radio' name="one" value="1" />
    Grounded, studious
</label>
<p>
<p>
<label>
  <input id="firsttwo" type='radio' name="one" value="2" />
    Relaxed, in control
 </label>
<p>
<p> 
<label>
   <input id="firstthree" type='radio' name="one" value="3" />
    Motivated, confident
</label>
<p>
<p>
<label>
  <input id="firstfour" type='radio' name="one" value="4" />
    Ambitious, carefree
</label>

<p>
<p>  

<b id="two">2) What kind of setting sounds ideal to live in?<br></b>

<p>
<p>
<label>
   <input id="secondone" type='radio' name="two" value="4" />
    Mountain tops
</label>
<p>
<p>
<label>
  <input id="secondtwo" type='radio' name="two" value="1" />
    Rocky Valley
 </label>
<p>
<p> 
<label>
   <input id="secondthree" type='radio' name="two" value="2" />
    Near bodies of water
</label>
<p>
<p>
<label>
  <input id="secondfour" type='radio' name="two" value="3" />
    Level ground
</label>

<p>
<p>

1 个答案:

答案 0 :(得分:1)

欢迎来到JS!它绝对是一门有趣的语言,你可以从中学到很多东西。

首先,你采取的方法可能比它需要的更复杂。

你可以做些什么来简化事情是将问题包装在<form>标签中,以后可以由JS引用。例如,看一下问题1和2,你可以写:

<form id="questions">
    <b id="one">1) Which lifestyle do you prefer?</b>
    <fieldset id="q1">
        <input type="radio" value="a" name="q1"> Grounded, studious<br>
        <input type="radio" value="b" name="q1"> Relaxed, in control<br>
        <input type="radio" value="c" name="q1"> Motivated, confident<br>
        <input type="radio" value="d" name="q1"> Ambitious, carefree
    </fieldset>
    <br>
    <b id="two">2) What kind of setting sounds ideal to live in?<br></b>            
    <fieldset id="q2">
        <input type="radio" value="a" name="q2"> Mountain tops<br>
        <input type="radio" value="b" name="q2"> Rocky Valley<br>
        <input type="radio" value="c" name="q2"> Near bodies of water<br>
        <input type="radio" value="d" name="q2"> Level ground<br>
    </fieldset>
    <br>
    <input type="submit">
</form>

之后,您需要添加一个提交事件处理程序,该处理程序将获取在每个问题中输入的每个结果值,将它们存储在一个数组中,并根据需要进行计算。这是一个快速的片段,可以得到这个想法:

$( "form#questions" ).submit(function(e) {

  // This simply stops the form from submitting so you can grab data
  e.preventDefault(); 

  // Grab the values of each fieldset of radio buttons
  var a1 = document.getElementById('q1').value; // ... or some variation of this
  // Store in array or however you wish to handle it

  // Do some calculations with stored variables / array

});

我不完全确定你的问卷背后的逻辑(即它如何计算结果),但我希望这至少可以让你更好地理解你如何完成它或者在哪个方向你可以去。

此外,作为附加说明,请查看JavaScript Objects以了解JavaScript对象,它们在数组无法工作的某些情况下非常有用。