2013-04-11 67 views
0

我正在做一个测验,答案是随机的。我想要“正确!” div显示文本框的值是否与另一个div相同。当文本框的值与另一个div的内容相同时显示div

这里是我到目前为止有:

$(document).ready(function(){ 
    $("#buttontest").click(function(){ 
     if ($('#full_day').val() == '#answer') { 
      $("#correct").show("fast"); //Slide Down Effect 
     } 
     else { 
      $("#correct").hide("fast"); //Slide Up Effect 
      $("#incorrect").show("500").delay("1000").hide("500"); 
     } 
    }); 
}); 
<p>What is the animal?</p> 
<div id="correct"> 
    That's Correct! 
</div> 
<div id="incorrect"> 
    Sorry, Try again! 
</div> 
<div id="answer">Monkey</div> 
<input type='text' id="full_day"/> 
<input type='button' id="buttontest" value="clickme"/> 
+0

你的问题是什么? – 2013-04-11 11:57:21

+0

基本上保持div标签属性显示无和($('#full_day')。val()== $('#answer')。html()) – 2013-04-11 12:01:40

回答

1
if ($('#full_day').val() == $('#answer').text()) 

这是区分大小写的。为了使它不区分大小写:

if ($('#full_day').val().toLowerCase() == $('#answer').text().toLowerCase()) 

编辑:按照要求,这里是一个解决方案,它允许多个答案:

$('#check').bind('click', function() { 
    var possibleAnswers = $('#answers').text().toLowerCase().split(' '); 
    var givenAnswer = $('#user-answer').val().toLowerCase(); 
    var isAnswerCorrect = false; 
    for (var indexPossibleAnswers = 0; indexPossibleAnswers < possibleAnswers.length; indexPossibleAnswers++) 
    { 
     if (possibleAnswers[indexPossibleAnswers] == givenAnswer) 
     { 
       isAnswerCorrect = true 
       break; 
     } 
    } 
    if (isAnswerCorrect) 
    { 
     alert('Correct'); 
    } 
    else 
    { 
     alert('Incorrect, try again.'); 
    } 
}); 

Live demonstration.

+0

由于'answer'是一个'div',因此不存在'val'属性...您应该使用'.text()'代替... – 2013-04-11 12:02:13

+0

正好,刚注意到这一点并编辑了我的文章。 – dislick 2013-04-11 12:03:10

+0

谢谢! <3 – user1890129 2013-04-11 12:16:03

1
$(document).ready(function(){ 
    $("#buttontest").click(function(){ 

     if ($('#full_day').val() == $('#answer').html()) { 
      $("#correct").show("fast"); //Slide Down Effect 
     } 
     else { 
      $("#correct").hide("fast"); //Slide Up Effect 
      $("#incorrect").show("500").delay("1000").hide("500"); 
     } 
    }); 
}); 

<p>What is the animal?</p> 
<div id="correct" style="display:none;"> 
    That's Correct! 
</div> 
<div id="incorrect" style="display:none;"> 
    Sorry, Try again! 
</div> 
<div id="answer" style="display:none;">Monkey</div> 
<input type='text' id="full_day"/> 
<input type='button' id="buttontest" value="clickme"/> 
+0

如果文本框的值是与一个wourld的div一样吗?假设div包含“动物猪”,那么只有“猪”会给出“正确!” div和“动物”将永远被忽略? – user1890129 2013-04-11 12:25:22

3

使用

$('#answer').text() 

,而不是只

'#answer' 

在if语句中。

+0

我们可以得到在这样的div标签之间的文字? – 2013-04-11 12:08:24

+0

多数民众赞成在伟大的。如果我不能得到一个div的价值,那么我的脑海里只有一个假设,那就连文本都没有。 – 2013-04-11 12:15:40

+0

是的。对于'

Monkey
'这个$('#answer')。text()'应该返回“Monkey”。 **在这里我添加了一个jsfiddle:http://jsfiddle.net/btddn/** – 2013-04-11 12:19:13

相关问题