我有一个很好的默认值检查,客户希望为onBlur事件添加其他功能。默认值检查是全局的,并且工作正常。新功能需要将一些特定于字段的值传递给新功能。如果不是这样的话,我只需将其固定在默认检查上即可完成。
我的问题是,我可以做这种事情,让他们两个火吗?什么是更好的方式?
THE DEFAULT-CHECK
$(document.body).getElements('input[type=text],textarea,tel,email').addEvents ({
'focus' : function(){
if (this.get('value') == this.defaultValue)
{
this.set('value', '');
}
},
'blur' : function(){
if (this.get('value') == '')
{
this.set('value', (this.defaultValue));
}
}
});
增加功能
<input type='text' id='field_01' value='default data' onBlur='driveData(event, variableForThisField, this.value);'>
这个想法是像往常一样处理默认值,但是在输入字段值时触发新函数。在我看来,我必须首先开火,但是如何!?
并且,再次,因为值传递了字段特定的,我不能将其转储到全局默认检查函数中。
希望这是有道理的。
WR!
答案 0 :(得分:1)
只需将自定义变量存储在custom data attribute中即可。在技术上不符合标准[在HTML 4中],但它起作用:
<input type='text' id='field_01' value='default data' data-customvar="variableForThisField">
$(document.body).getElements('input[type=text],textarea,tel,email').addEvents ({
'focus' : function(){
if (this.get('value') == this.defaultValue)
{
this.set('value', '');
}
},
'blur' : function(){
if (this.get('value') == '')
{
this.set('value', (this.defaultValue));
} else {
driveData(this.get('value'), this.get('data-customvar'));
}
}
});
答案 1 :(得分:0)
我认为你在使用Mootools?我不太清楚语法,但是我创建了一个JSFiddle,它似乎与Mootools一起使用,而不是其他库。
这是我为测试而创建的小提琴:http://jsfiddle.net/NDTsz/
答案似乎是 - 当然在Chrome中,但我相信每个浏览器。