Javascript 在将each()与多个输入一起使用时存在问题
请看一下这个演示,让我知道为什么我不能使用Javascript 在将each()与多个输入一起使用时存在问题,javascript,jquery,Javascript,Jquery,请看一下这个演示,让我知道为什么我不能使用每个迭代器来检查空输入 $('test')。在('click',函数(e)上{ e、 预防默认值(); $(“输入”)。每个(函数(){ 如果($(this.val().length>0){ $(this.addClass('error'); } }); }); .error{背景色:红色;} A. B 7. W o 66 试验 试试: $('test')。在('click',函数(e)上{ e、 预防默认值(); $(“输入”)。每个(功能(
每个
迭代器来检查空输入
$('test')。在('click',函数(e)上{
e、 预防默认值();
$(“输入”)。每个(函数(){
如果($(this.val().length>0){
$(this.addClass('error');
}
});
});代码>
.error{背景色:红色;}
A.
B
7.
W
o
66
试验
试试:
$('test')。在('click',函数(e)上{
e、 预防默认值();
$(“输入”)。每个(功能(i、v){
console.log($(v).val().length)
if($(v).val().length==0){
$(v).addClass('error');
}
});
});代码>
。错误{边框颜色:红色;}
A.
B
7.
W
o
66
问题中html
处的Test
元素没有值
属性返回。长度
尝试在input
元素处设置value
属性,以检索$(this.val()
或this.value
中的.each()
;将.toggelClass()
替换为.addClass()
以在\test
元素处切换
类
,如果输入长度发生变化,请单击事件
$(“#测试”)。在(“单击”上,函数(e){
e、 预防默认值();
$(“输入”)。每个(函数(){
$(this.toggleClass(“error”,!this.value.length);
});
});代码>
。错误{
背景色:红色;
}
A.
B
7.
W
o
66
测试
我对你的代码没有问题,一切都在运行。
如果我在输入中填充了一些内容,那么它将运行在if子句中
但是你想用“错误”做什么呢?自版本1.8以来,它已被弃用,并且
在您的编码中没有错误处理程序,您将字符串作为错误处理程序(函数)的参数。
阅读:
在您的情况下,最好为每个函数指定父元素,如:
$("input","body").each(
如果要处理错误,请执行以下操作:
$('#myelement').on('error',function(){ /*your error code */});
对于您的示例,如果要检查输入的值,那么在输入元素上绑定错误处理程序不是正确的方法。错误处理程序catch的想法类似于“未定义”,但如果输入为空,则它不是系统错误
尝试:
如果我正确理解您的查询,您希望在单击“测试”按钮后突出显示空输入字段,而不应突出显示带有值的输入字段。如果是,请检查此解决方案:
$('test')。在('click',函数(e)上{
e、 预防默认值();
$(“输入”)。每个(函数(){
if($(this).val().length==0){
$(this.addClass('error');
}否则{
$(this.removeClass('error');
}
});
});代码>
.error{背景色:红色;}
A.
B
7.
W
o
66
测试
使用$(this).addClass('error')代码>谢谢Tushar,但这只是一个输入错误,正如您所看到的,if($(this).val().length==0){
if($(this).val().length > 0){
console.log('Input Val has ' + this).val().length + ' characters')
}