2014-09-10 160 views
0

我正在为我的学校中的一些学生创建练习考试。我有很多选择题,我试图让它工作在这里陷入困境。我是新来的JavaScript,并没有线索如何得到这个工作。所以,每一个问题有4个选择,是这样的:显示对话单击单选按钮

<tr> 
    <td> 
     <figures1></figures1> 
    </td> 
    <td class="questiona"> 
     <br> 
     <input type="radio" name="q1" value="a"/>a<br> 
     <input type="radio" name="q1" value="b"/>b<br> 
     <input type="radio" name="q1" value="c"/>c<br> 
     <input type="radio" name="q1" value="d"/>d<br> 
    </td> 
</tr> 

的问题是,只是一个形象,他们必须选择A,B,C或d。 我已经设法让它工作到目前为止,我想要添加的是一个对话框,只要他们点击a,b,c或d来告诉他们答案是否正确,如果不添加反馈以告诉他们为什么答案是错误的。我不使用警报给他们反馈的原因是因为我无法将图像添加到警报框。

在此先感谢

+1

'figures1'不是一个有效的HTML元素。 – 2014-09-10 12:28:01

+0

shouldv'e把它放在代码中,figure1引用一组数字。它只是将图像加载到html页面,图形显示了问题。 – rickert 2014-09-10 12:45:50

+0

顺便说一句,你的学生可以从源代码中看到正确的答案 – 2014-09-10 12:59:50

回答

1

给你的输入一个类似“答案”。 然后在您的jQuery代码:

$(document).ready(function(){ 
     $(".answer").click(function(){ 
      ValidateAnswerFunction(this); //sends the input element to the validate answer function 
      $("#dialog").css("display", "block"); // shows the dialog .hide(); to hide it! 
     }); 

     $("#dialog").click(function(){ 
      $(this).hide(); 
     }); 
    }); 

    function ValidateAnswerFunction(input){ 
     switch($(input).val()){ 
      case "a": 
       $("#dialog").html("correct"); 
       break; 
      case "b": 
       $("#dialog").html("close"); 
       break; 
      case "c": 
       $("#dialog").html("not even close <img src='http://www.w3schools.com/html/pic_mountain.jpg' style='width:100px;height:100px'>"); 
       break; 
      case "d": 
       $("#dialog").html("are you even trying m8?"); 
       break; 
     } 
    } 

哪里#dialog是您的对话框:

<div id="dialog"></div> 

JS fiddle

+0

好吧,有了这些'#dialog'和'.answer',你应该添加一个完整的例子,它应该如何工作。 – Regent 2014-09-10 12:30:53

+0

@Regent true让我编辑。 – 2014-09-10 12:32:02

+0

嗯它看起来不错,萌芽的事情是我想在问题上有4个不同的反馈,就像他回答一个显示他反馈的a和b显示b的反馈一样。 – rickert 2014-09-10 13:00:45

0

你需要测试单击元素的值,然后从给予反馈那个答案。这可以通过多种方式完成,但我会说使用$("[name=q1]").click()将是最简单的,然后使用$(this).val()来检查答案。

请参考这个小提琴的例子。

http://jsfiddle.net/u3csoave/

0

我认为你可以使用确认警报显示用户正确的答案,并把一个链接的提示框,让他们改变自己的答案。

0

jQueryUI的对话框..

function foobar() { 
    $("#dialog").dialog(); 
} 

<div id="dialog" title="Dialog title"> 
    <img src="foo.bar"/> 
</div> 

随后打开的对话框中的单选按钮点击数方法。

也许你应该只做一个通用对话框,并传递所有需要的信息作为参数,这样你就不会得到包含多个对话框的页面。