我正在阅读jquery,我正面临着关于jquery函数的一些问题..任何人都可以指导我关于函数的问题。目前我想只创建一个函数并且如果req相同则每次调用两次..但是函数不起作用请专家在代码中指导我。
var errorAlpha = function(){
$(this).focus().keyup(function(){
var reg = /^([A-Za-z]+)$/;
var check = $(this).val();
if(reg.test(check)==true && check.match(reg)==true)
{
$(this).removeClass('error_Aplha');
}
else {
$(this).addClass('error_Aplha');
}
}),blur(function(){
var check = $(this).val();
var reg = /^([A-Za-z]+)$/;
if(reg.test(check)==true && check.match(reg)==true)
{
$(this).removeClass('error_Aplha');
}
else {
$(this).addClass('error_Aplha');
}
});
};
$('#step1 #fName').function(errorAlpha());
Html在这里
<input type="text" class="width-260" id="fName"/>
Css就在这里
.error_Aplha {
border:1px solid #b20000 !important;
box-shadow: 0px 0px 5px #b20000;
-webkit-box-shadow: 0px 0px 5px #b20000;
-moz-box-shadow: 0px 0px 5px #b20000;
}
答案 0 :(得分:0)
您的代码$('#step1 #fName').function(errorAlpha());
错误。什么都不会发生。
如果您想触发某些内容,则需要附加事件处理程序,如click,key,mouse事件。这是设置事件处理程序的一种方法,
$('#step1 #fName').keypress(function(){
errorAlpha();
});
以下是jQuery事件方法列表http://api.jquery.com/category/Events/
<强>更新强>
我更新了您的代码,它在http://jsfiddle.net/muthkum/gU3PU/2/
工作答案 1 :(得分:0)
这里有语法错误:
}),blur(function(){
您应该使用句号:
}).blur(function(){
当您尝试使用该函数时,您正在使用一个不存在的方法,并且在函数名后面有括号,表示在绑定事件时调用该函数,而不是在事件发生时调用。 / p>
此:
$('#step1 #fName').function(errorAlpha());
应该是这样的:
$('#step1 #fName').click(errorAlpha);
match
方法不返回布尔值,返回数组或null
:
if (reg.test(check) == true && check.match(reg) != null) {
答案 2 :(得分:0)
单独创建要使用两次的功能。
function common(){
...
}
然后你可以做
$(' #fName').focus().blur(common);
$(' #fName').blur(common);
答案 3 :(得分:0)
尝试这样的事情
function errorAlpha(obj){
var reg = /^([A-Za-z]+)$/;
var check = $(obj).val();
if(reg.test(check)==true && check.match(reg)==true)
{
$(obj).removeClass('error_Aplha');
}
else {
$(obj).addClass('error_Aplha');
}
}
$('#fName').focus().keyup(function(){
errorAlpha(this);
}).blur(function(){
errorAlpha(this);
});