jQuery如果函数内部未定义

时间:2014-04-30 03:53:13

标签: javascript jquery if-statement

我有这个简单的代码,显示图像和单词,你必须完成该字段。如果你正确地写了这个词,就会出现一个恭喜弹出窗口。

我能够弄清楚如何随机化array中的项目以显示随机图像。 现在,我想检查每个keyup是否与该随机单词匹配。

我的IF语句似乎有问题,因为如果删除它,弹出窗口就能完美运行。

错误:

  

未捕获的typeerror undefined不是函数

代码:

<html>
    <head>
    <title>AutistApp</title>
    <link rel="stylesheet" type="text/css" href="css/style.css">
    <script src="js/jquery.min.js"></script>
    </head>

    <body>
        <div id="container">

        <div class="eval">CORRECTO</div>
        <div class="siguiente"><a href=".">&iexcl;OTRA VEZ!</a></div>

        <div class="dibujo"><img id="dibujito" src="img/apple.png" /></div>
        <div class="palabra">MANZANA</div>
        <div class="respuesta"><input type="text" id="resp" name="resp" value=""/>
        </div>
    </div>

<script type="text/javascript"> 

/***** RANDOM VALUES *****/
var messages = ["manzana", "pera", "banana"],
    message = messages[Math.floor(Math.random() * messages.length)];

$('.palabra').text(message);
$('#dibujito').attr('src','img/'+message+'.png');

/***** KEYDOWN CHECK *****/
$(document).ready(function(){
    $('#resp').keyup(function(){
        if ($("#resp").value() == message) {
            $('.eval').slideDown();
            $('.eval').delay(3000).fadeOut();
            $('.siguiente').delay(3000).slideDown();
        }
    });
});

</script>
</body>
</html>

2 个答案:

答案 0 :(得分:2)

您需要使用 .val() 而不是.value()来获取input元素的值,以便您可以这样做:

if ($("#resp").val() == message) {

而不是:

if ($("#resp").value() == message) {

您还需要将所有代码包装在DOM就绪处理程序中:

$(document).ready(function () {
    var messages = ["manzana", "pera", "banana"],
        message = messages[Math.floor(Math.random() * messages.length)];

    $('.palabra').text(message);
    $('#dibujito').attr('src', 'img/' + message + '.png');

    $('#resp').keyup(function () {
        if ($("#resp").val() == message) {
            $('.eval').slideDown();
            $('.eval').delay(3000).fadeOut();
            $('.siguiente').delay(3000).slideDown();
        }
    });
});

答案 1 :(得分:2)

您需要使用的人

 $("#resp").val() 

in if condition。