Javascript 尝试使用JQuery清除错误提示
我正在尝试清除按键下的错误图标 **编辑-添加HTML**Javascript 尝试使用JQuery清除错误提示,javascript,jquery,function,Javascript,Jquery,Function,我正在尝试清除按键下的错误图标 **编辑-添加HTML** <input class="validate" type="text" data-type="string" id="address" /> <input class="validate" type="text" data-type="number" id="zip&qu
<input class="validate" type="text" data-type="string" id="address" />
<input class="validate" type="text" data-type="number" id="zip" />
如果状态等于错误,则显示错误图标
现在,我想在用户按下键时清除错误。以下是我的尝试:
function clearError(){
$(".validate").keydown(function(){
var datatype = $(this).data("type");
var label = this.id;
label.html(label.html()+' ');
});
}
显然,使用上面的keydown函数清除错误没有多大成功
如何才能做到这一点?试图将文本保留在标签中的标签业务不是很直观,因此我将span添加到标签中,以便您从函数中的
span
中删除并添加错误符号。此外,您还有一些不必要的代码可以在这两个函数中删除。例如,您的if
语句检查状态是不必要的,因为您已经检查了值是否为空(设置状态的位置),因此您可以将该代码移动到if
语句检查空值中
我们使用“span”id=“testSpan”
将每个对应的span
的id设置为输入的id,这样JS函数就可以轻松访问它。请记住,在jQuery函数中,这个
总是指非jQuery对象,因此您可以对其使用JS香草方法
这就是我能想到的:
$(.validate”).blur(函数(){
var id=this.id;//获取id
如果(this.value!=“”){//检查输入是否为空
document.getElementById(id+“Span”).innerHTML='✅;';//设置ok符号
控制台日志(“良好”);
}否则{
document.getElementById(id+“Span”).innerHTML='❌;';//设置错误符号
日志(“错误空文本”);
}
});
$(“.validate”).keydown(函数(){
//如果值为空,则设置错误符号,否则为空(保留ok符号)
if(this.value==“”“)document.getElementById(this.id+”Span”).textContent=“”;
});代码>
测试
测试
旁注:$(this).attr('id')
应该是this.id
另外,在clearError
方法中有很多未使用的变量。还有两件事<代码>状态
设置为“良好”,从未更改。因此,if
是毫无意义的。然后设置标签html的值,即标签html是什么。实际上,var x=x+''代码>这没有意义。@Taplar-已更新。关于如何清除错误有什么想法吗?那么我建议在错误周围加一个空格,这样您的标记就像无论这是什么,在这种情况下,错误的设置和删除应该只针对范围而不是其他。我得到以下错误:UncaughtTypeError:无法在HTMLInputElement上将属性“innerHTML”设置为null。您获得了正确的id吗?通常表示元素不存在,id为。可能需要编辑问题并放入代码。@JohnBeasley是否有帮助?
function clearError(){
$(".validate").keydown(function(){
var datatype = $(this).data("type");
var label = this.id;
label.html(label.html()+' ');
});
}