Javascript 使用jQuery在keyup上验证表单输入

Javascript 使用jQuery在keyup上验证表单输入,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我试图构建我的表单,这样当用户填写输入并按enter键时,他们就可以得到下一个输入字段 我已经让它正常工作了,事实上它显示了下一个div,只是我无法让验证工作正常 //输入下一个div时的表单。。。 $(窗口)。加载(函数(){ $('footer.active input')。打开(“keyup”,函数(e){ e、 预防默认值(); 如果(如keyCode===13){ if($('footer.active input').val().length==0){ 警惕(‘否’); }否则{

我试图构建我的表单,这样当用户填写输入并按enter键时,他们就可以得到下一个输入字段

我已经让它正常工作了,事实上它显示了下一个div,只是我无法让验证工作正常

//输入下一个div时的表单。。。
$(窗口)。加载(函数(){
$('footer.active input')。打开(“keyup”,函数(e){
e、 预防默认值();
如果(如keyCode===13){
if($('footer.active input').val().length==0){
警惕(‘否’);
}否则{
var$activeElement=$(“footer.active”);
$(“footer.active”).next().addClass(“active”).removeClass(“inactive”);
$activeElement.removeClass(“活动”).addClass(“非活动”);
}
}
});
});
表单{
溢出:隐藏;
宽度:100%;最小高度:200px;
位置:相对位置;
}
不活动分区{
位置:绝对位置;
显示:无;
宽度:100%;
边框底部:1px实心rgba(255255,0.3);
}
输入{
填充物:2.5雷姆0;
字号:4rem;
字号:200;
宽度:80%;
}
.主动{
显示:块;
}

您必须使用
$(document).on(“keyup”、'footer.active input',函数(e){}

//输入下一个div时的表单。。。
$(document).on(“keyup”,“footer.active input”,函数(e){
如果(e.keyCode==13){
if($('footer.active input').val()=''){
警惕(‘否’);
}否则{
var$activeElement=$(“footer.active”);
$(“footer.active”).next().addClass(“active”);
$activeElement.removeClass(“活动”);
}
}
});
表单{
溢出:隐藏;
宽度:100%;
最小高度:200px;
位置:相对位置;
}
表格分区输入{
位置:绝对位置;
显示:无;
宽度:100%;
边框底部:1px实心rgba(255、255、255、0.3);
}
表格分区输入{
填充物:2.5雷姆0;
字号:4rem;
字号:200;
宽度:80%;
}
表单div.input.active{
显示:块;
}

您必须使用
$(document).on(“keyup”、'footer.active input',函数(e){}

//输入下一个div时的表单。。。
$(document).on(“keyup”,“footer.active input”,函数(e){
如果(e.keyCode==13){
if($('footer.active input').val()=''){
警惕(‘否’);
}否则{
var$activeElement=$(“footer.active”);
$(“footer.active”).next().addClass(“active”);
$activeElement.removeClass(“活动”);
}
}
});
表单{
溢出:隐藏;
宽度:100%;
最小高度:200px;
位置:相对位置;
}
表格分区输入{
位置:绝对位置;
显示:无;
宽度:100%;
边框底部:1px实心rgba(255、255、255、0.3);
}
表格分区输入{
填充物:2.5雷姆0;
字号:4rem;
字号:200;
宽度:80%;
}
表单div.input.active{
显示:块;
}

$('footer.active input')。length
是与选择器匹配的元素数。如果要获取输入值,请使用
.val()

// Form on enter next div...
$('footer .active input').on("keyup", function(e) {
  if (e.keyCode == 13) {
    if ($('footer .active input').val() == '') {
      alert('NO!');
    } else {
      var $activeElement = $("footer .active");
      $("footer .active").next().addClass("active");
      $activeElement.removeClass("active");
    }
  }
});

$('footer.active input')。length
是与选择器匹配的元素数。如果要获取输入值,请使用
.val()

// Form on enter next div...
$('footer .active input').on("keyup", function(e) {
  if (e.keyCode == 13) {
    if ($('footer .active input').val() == '') {
      alert('NO!');
    } else {
      var $activeElement = $("footer .active");
      $("footer .active").next().addClass("active");
      $activeElement.removeClass("active");
    }
  }
});
更改行:

if( $('footer .active input').length === '' ){

然后再试一次

注意:您必须检查输入中输入的值

更改行:

if( $('footer .active input').length === '' ){

然后再试一次

注意:您必须检查输入中输入的值

不要使用“长度=”“ length返回一个整数,因此无法将其与空字符串(带typeof字符串)进行比较 试一试

if($('footer.active input').val().length不要使用“length==”
length返回一个整数,因此无法将其与空字符串(带typeof字符串)进行比较
试一试


if($('footer.active input').val()

if( $('footer .active input').length === ''
这种比较是错误的,原因有三:

  • 您正在使用
  • 您应该期望length的值为
    0
    ,而不是空字符串
  • 您正在比较jQuery对象的属性
    length
    ,它相当于与选择器匹配的DOM元素的数量
  • 将行更改为:

    if($('footer .active input').val().length == 0)
    
    或者,如果您不想检查长度:

    if($('footer .active input').val() == '')
    

    注意:您可能希望使用
    e.target
    而不是两次查询同一元素。

    这行代码就在这里:

    if( $('footer .active input').length === ''
    
    这种比较是错误的,原因有三:

  • 您正在使用
  • 您应该期望length的值为
    0
    ,而不是空字符串
  • 您正在比较jQuery对象的属性
    length
    ,它相当于与选择器匹配的DOM元素的数量
  • 将行更改为:

    if($('footer .active input').val().length == 0)
    
    或者,如果您不想检查长度:

    if($('footer .active input').val() == '')
    

    注意:您可能希望使用
    e.target
    而不是两次查询同一元素。

    这不是问题@Carsten-我已经在它移动到下一个div时工作了,我只想在允许函数运行之前验证输入是否已填写抱歉忘了添加部件,更改了Itooh我明白了,谢谢s感谢您花时间响应-工作完美!这不是问题@Carsten-我让它工作,因为它将移动到下一个div,我只想验证输入是否已填充,然后允许函数运行抱歉忘记添加部件,更改了Itooh我明白了,感谢您花时间响应-工作完美!