试图让密钥工作

时间:2013-11-18 16:39:42

标签: javascript jquery

所以我有这个代码,当用户插入分数时,它将检查用户是否输入0.50或.50作为示例并验证它以便用户可以输入或。

但我的问题是,当用户输入新的分数时,他们必须按Enter键或在框外单击以启用保存按钮。

所以我想要添加.keyup.keypress事件,这样只要用户开始输入数据就会启用它,但是我遇到了错误。

如果我将其更改为.keyup,则不会进行验证。有人可以看看这段代码,让我知道我没看到的是什么吗?我如何让它工作?感谢。

aResponse.append(
        jQuery('<div />', {'class':'responseScore'}).append(
            jQuery('<span />', {'text':'Score for above response: '}),
            jQuery('<input />', {'type':'text', 'maxlength':10, 'placeholder':'Score', 'value':(response.score%1==0?response.score.toFixed(1):response.score), 'tabindex':(i+1)})
              .bind('change', function(){
                var that=this;
                var score = this.value;
                if (score.length > 0 && isNaN(parseFloat(score))){
                    $(this).addClass('invalidNumber');
                    alert("That is not a valid number.");
                    $(this).val('');
                    setTimeout(function(){that.focus();},5);
                    return;
                }
                else
                    if ($(this).hasClass('invalidNumber')) $(this).removeClass('invalidNumber');
                var responseID = $(this).parents('.groupResponse').attr('qrid');
                var response = responses.filter(function(item, index) {return item.id == responseID && responseID != undefined})[0];
                if (score.length == 0)
                    response.attr('score', '');
                else
                    response.attr('score', parseFloat(score));

                $("#saveButton").button('option','disabled',false);
            }),
            jQuery('<span />', {'text':' / '+(response.question.weight%1==0?response.question.weight.toFixed(1):response.question.weight)})
        )
    );

0 个答案:

没有答案