所以我有这个代码,当用户插入分数时,它将检查用户是否输入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)})
)
);