2013-05-14 2 views
1

Я пытаюсь создать вопрос с несколькими вопросами обратной связи. Мне нужна небольшая помощь с моим кодом if-statement. У меня есть один правильный ответ, но хотелось бы получить другое обратное оповещение для выбора каждого неправильного ответа. Я бы хотел, чтобы он дал другой ответ за каждый неправильный ответ. Например, «Вы выбрали серый, есть лучший ответ, пожалуйста, выберите еще раз». или «вы выбрали черный, есть лучший ответ».JQuery Multiple Choice Несколько обратных ссылок Если заявление

Вот мой код.

http://jsfiddle.net/nhxuy/

Jquery:

$(function() { 
    //variable of correct answers 
    var rules = ['correct']; 

    //force checkboxes to work like radio buttons 
    var boxes = $("input[name=q4]:checkbox").click(function() { 
     boxes.not(this).attr('checked', false); 
    }); 



    $('.submit4').click(function (e) { 
     e.preventDefault(); 
     //check correct answers from var above 
     if ($('input[name=q4]:checked').map(function (i, v) { 
      return v.id; 
     }).get().join(',') == rules[0]) { 
      alert("Correct! Reflective colors should make you more visible at night"); 

     } else { 

      $('.grey:checked').attr('disabled', 'disabled').removeAttr('checked'); 
      alert("grey is wrong... it might not be bright enough."); 
     } 



    }); 
}); 

HTML:

<h1> Question </h1> 

<p>What is the best color to wear after dark?</p> 
<form> 
    <label> 
     <input type="checkbox" name="q4" class="grey"></input>grey</label> 
    <label> 
     <input type="checkbox" name="q4" class="black"></input>black</label> 
    <label> 
     <input type="checkbox" name="q4" class="white"></input>white</label> 
    <label> 
     <input type="checkbox" name="q4" class="red"></input>red</label> 
    <label> 
     <input type="checkbox" name="q4" id="correct"></input>reflective yellow</label> 
    <br /> 
    <button class="submit4">Submit</button> 
</form> 
+0

Так в чем ваш вопрос? – nnnnnn

+0

'' // заставить флажки работать как радиокнопки'', почему бы не использовать радиокнопки ?! –

+0

Это чисто косметический ... Чтобы соответствовать всем другим вопросам с множественным выбором, которые имеют несколько ответов и обрабатываются по-разному. – user1941999

ответ

1

В этом случае, я предлагаю вам использовать switch, что-то подобное (только реализовать свою собственную логику):

$('.submit4').click(function (e) { 
    e.preventDefault(); 
    //check correct answers from var above 
    var result; 
    switch($('input[name=q4]:checked').attr('class')){ 
     case 'grey': 
      result = "it's grey"; 
      break; 
     case 'black': 
      result = "it's black"; 
      break; 
     case 'white': 
      result = "it's white"; 
      break; 
     case 'red': 
      result = "it's red"; 
      break; 
     default: 
      result = 'Correct answer!'; 
      break; 
    } 
    alert(result); 

}); 

В этом случае переключатель работает, получая класс флажком, и вы можете делать все, что вы хотите на каждом конкретном случае вместо того, чтобы использовать связку, если/... вернулись на Родину

Jsfiddle демо: http://jsfiddle.net/darkajax/q4rJ8/

+0

Спасибо darkajax! Это отлично работает. Намного проще и лучше! – user1941999

Смежные вопросы