将javascript函数转换为传入对象
我有一个javascript,它工作得很好-将javascript函数转换为传入对象,javascript,jquery,Javascript,Jquery,我有一个javascript,它工作得很好- var employeename = $("#employeename"); var employeenameInfo = $("#employeenameInfo"); employeename.blur(validateEmployeename); function validateEmployeename(){ //if it's NOT valid if(employeename.val().length < 4){
var employeename = $("#employeename");
var employeenameInfo = $("#employeenameInfo");
employeename.blur(validateEmployeename);
function validateEmployeename(){
//if it's NOT valid
if(employeename.val().length < 4){
employeename.addClass("error");
employeenameInfo.text("We want names with more than 3 letters!");
employeenameInfo.addClass("error");
return false;
}
//if it's valid
else{
employeename.removeClass("error");
employeenameInfo.text("Full Name.");
employeenameInfo.removeClass("error");
return true;
}
}
然而,无论我尝试什么,都会给我带来错误,我真的被卡住了。谢谢你的帮助。这也带来了信息字段的另一个问题,我是否可以存储原始文本并将其还原为新字符串?您可以使用$获取触发事件的字段(此)。您还应该将info字段作为info类的同级
$('input.to_be_validated').blur(validateInput);
function validateInput(e){
var input = $(this)
var info = input.parent.find('.info')
//if it's NOT valid
if(input.val().length < 4){
input.addClass("error");
info.text("We want names with more than 3 letters!");
info.addClass("error");
return false;
}
//if it's valid
else{
input.removeClass("error");
info.text("Full Name.");
info.removeClass("error");
return true;
}
}
$('input.to\u be\u validated').blur(validatedinput);
函数验证输入(e){
变量输入=$(此)
var info=input.parent.find(“.info”)
//如果它是无效的
if(input.val().length<4){
input.addClass(“错误”);
text(“我们希望名称包含3个以上的字母!”);
info.addClass(“错误”);
返回false;
}
//如果有效的话
否则{
input.removeClass(“错误”);
信息文本(“全名”);
info.removeClass(“错误”);
返回true;
}
}
编辑:忘记信息字段您需要做的就是引用传递到函数中的
字段
变量,因此您的代码变成:
function validateEmployeename(field, fieldinfo){
//if it's NOT valid
if(field.val().length < 4){
field.addClass("error");
fieldinfo.text("We want names with more than 3 letters!");
fieldinfo.addClass("error");
return false;
}
//if it's valid
else{
field.removeClass("error");
fieldinfo.text("Full Name.");
fieldinfo.removeClass("error");
return true;
}
}
函数validateEmployeename(字段,字段信息){
//如果它是无效的
if(field.val().length<4){
字段addClass(“错误”);
text(“我们希望名称包含3个以上的字母!”);
fieldinfo.addClass(“错误”);
返回false;
}
//如果有效的话
否则{
field.removeClass(“错误”);
fieldinfo.text(“全名”);
fieldinfo.removeClass(“错误”);
返回true;
}
}
您也可以使用多个选择器:
$("input[name='employeename'], input[name='employeename2']").blur(function() {
// put your validation routine for fields that should contain names
$(this).next("#employeenameInfo").html("info here"); // note that you don't have unique id here, better to find element you want to put your error message by tagname/class, like "span.error"
});
$("input[name='employeemail'], input[name='employeemail2']").blur(function() {
// put your validation routine for fields that should contain email addresses
$(this).next("#emailInfo").html("info here"); // note that you don't have unique id here, better to find element you want to put your error message by tagname/class, like "span.error"
});
这样,您就不需要向验证函数传递任何内容,只要您有适当的元素来填充附近的错误消息,所有内容都将围绕$(this)
,得到解决:
<input type="text" name="employeename" />
<span class="error" />
那么,您能否显示不起作用的代码?很难修复看不见的代码…要恢复“info”字段内容,请创建一个字典:var infoDic={employeenameInfo:“全名”,xxx:“xxx”,等等}代码>。然后使用infoDic检索您的域的内容。谢谢,我们将尽快试用!
<input type="text" name="employeename" />
<span class="error" />