【发布时间】:2011-07-11 11:18:00
【问题描述】:
我正在尝试通过将函数绑定到按键事件来对某些字段执行验证。
我制作了几个自定义验证对象并将它们放在数组验证中(完整代码未显示):
{"id": "DE-mname", "events":"keypress", "func": function(obj){
return validator.name($(obj).val()) || $(obj).isEmpty();
}
并使用以下方法和自定义 jquery 插件将其附加到某些组件:
DataEntry.prototype.attachValidators = function(){
var x, validation;
for(x in this.validations)
{
validation = this.validations[x];
$("#" + validation.id).attachValidation(validation.events,validation.func);
}
};
/**
*
* @param {String} Events - a string of events you want validation to execute on
* should be delimited by a space.
* @param (Function) validateFunc - a function used to determine if the field is valid,
* must return true, truthy, false or falsey values, the function may accept an object
* as the first parameter which will be the selected jquery object.
*/
(function($){
$.fn.extend({
attachValidation: function(events, validateFunc){
events += " validate";
return this.each(function(){
var that = this;
$(this).bind(events, function(event){
if (validateFunc(that, event)) {
$(that).removeClass("error");
}
else {
$(that).addClass("error");
}
jq(this).trigger("errorAttached");
});
});
}
});
})(jQuery
我遇到的问题是,当 keypress 事件被触发并且验证函数检查文本框组件的 .val() 时,新值不包含当前按下的键。
例如:如果我单击输入字段并按下“$”键,$(obj).val()) 将返回一个空字符串,而不是 $。我想用当前按下的键检索值。 请注意,我无法切换到 keyup 事件
【问题讨论】:
-
好的,正在切换到检查 Tab 键,在这工作之后,我有更艰巨的任务是找出谁应该为答案提供功劳
标签: javascript jquery