使用change验证答案时出现问题



在文本输入字段上使用.change时遇到一些问题。如果答案是正确的(在这种情况下等于1),它应该使用库(artist)在画布上绘制文本,但它没有这样做

这是javascript

$('#atomnum').change(function(){
        ans = $('#atomnum').val();
    });
    if(ans == 1){
        artisan.drawText('canvas', 200, 300, 'Correto!', '#FFFFFF');
    }else{
        return false;
    }

输入的id为atomnum。有什么帮助吗?

编辑-尝试了这些机器人,仍然不起作用。这是被调用的整个函数,也许这个çistener不应该在这个函数内。。。

如果绘图操作应该发生在.change()事件内,请将其放入:

$('#atomnum').change(function(){
    ans = $('#atomnum').val();
    if(ans == 1){
        artisan.drawText('canvas', 200, 300, 'Correto!', '#FFFFFF');
    }else{
        return false;
    }
});

否则,您将需要一个额外的函数来检查ans的新值并对其采取相应的操作。

注意-删除了一个额外的关闭}

该代码无法工作。您可以在绑定事件一次后立即执行检查代码,而不是在元素更改时运行它。

试试这个:

$('#atomnum').change(function(e) {
    var ans = $('#atomnum').val();
    if(ans == '1') {
        artisan.drawText('canvas', 200, 300, 'Correto!', '#FFFFFF');
    }
    else {
        e.preventDefault();
    }
});