Javascript 尝试使用JQuery清除错误提示

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

我正在尝试清除按键下的错误图标

**编辑-添加HTML**

<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()+' ');
  });
}