Javascript 带有jQuery和textarea的动态if/else语句

Javascript 带有jQuery和textarea的动态if/else语句,javascript,jquery,html,css,if-statement,Javascript,Jquery,Html,Css,If Statement,因此,我尝试设置一个标记的样式,以便在键入多个字符时突出显示。(用于联系方式)。当有人填写表单时,字段将全部高亮显示为绿色,以告知其有效性。一般来说,我对JS和jQuery非常陌生,但我非常确定这是可行的。我可以单独使用$('#message').addClass('valid'),它将应用该类,但是当我添加if/else语句时,没有任何效果。这是剧本 \\ Begin Highlight Code var $messageval = $('#message').val() if ($m

因此,我尝试设置一个
标记的样式,以便在键入多个字符时突出显示。(用于联系方式)。当有人填写表单时,字段将全部高亮显示为绿色,以告知其有效性。一般来说,我对JS和jQuery非常陌生,但我非常确定这是可行的。我可以单独使用
$('#message').addClass('valid')
,它将应用该类,但是当我添加if/else语句时,没有任何效果。这是剧本

\\ Begin Highlight Code
var $messageval = $('#message').val()
    if ($messageval.length != 0 ){
     $('#message').addClass('valid');
    }
    else ($messageval.length = 0 ){
      $('#message').removeClass('valid');
    }
  });
我在谷歌上搜索了几个小时,找不到任何东西可以根据文本长度变量动态添加和删除类


谢谢

如果

 if ($messageval.length != 0 ){
     $(this).addClass('valid');
    }
    else if($messageval.length == 0 ){ //<-- Here
      $('#message').removeClass('valid');
    }

如果

 if ($messageval.length != 0 ){
     $(this).addClass('valid');
    }
    else if($messageval.length == 0 ){ //<-- Here
      $('#message').removeClass('valid');
    }

将您的代码更改为此

 $(document).ready(function(){

        $('#message').trigger('change');//if you initially want to check the textarea

        $('#message').on('change', function(){
        var $messageval = $(this).val();
        if ($messageval.length != 0 ){
         if (!$(this).hasClass("valid")) {
            $(this).addClass("valid");
          }
        }
        else ($messageval.length == 0 ){
          if ($(this).hasClass("valid")) {
             $(this).removeClass("valid");
          }
        }
      });
    });

干杯

将您的代码更改为此

 $(document).ready(function(){

        $('#message').trigger('change');//if you initially want to check the textarea

        $('#message').on('change', function(){
        var $messageval = $(this).val();
        if ($messageval.length != 0 ){
         if (!$(this).hasClass("valid")) {
            $(this).addClass("valid");
          }
        }
        else ($messageval.length == 0 ){
          if ($(this).hasClass("valid")) {
             $(this).removeClass("valid");
          }
        }
      });
    });

干杯

开头的注释无效…否则没有要检查的参数。即使是这样,这种情况也总是正确的。使用==而不仅仅是=。var上缺少分号,这是在什么页面加载上发生的?你应该把它放在一个键控侦听器中。开头的注释无效…否则没有要检查的参数。即使是这样,这种情况也总是正确的。使用==而不仅仅是=。var上缺少分号,这是在什么页面加载上发生的?你应该把它放在一个keyup监听器中。如果你为keyup添加事件监听器,我知道我已经关闭了它,但是如果页面加载中有文本,我该如何添加这个类呢?如果使用框中的文本刷新,则不会应用该类,即使是在
keyup
上,如果要在页面加载时应用,则只需将条件放在document ready下任何函数的外侧即可。但是,如果您认为它总是存在,则将该类有效地放入textarea标记本身,或者当您为textarea赋值时,您也可以添加该类。如果您向表单添加文本并刷新表单,则不会清除该表单。我只是想检查在刷新时是否有加载的文本。您可以使用on change事件保持添加样式类的条件,并在页面加载时触发更改事件。如果您为KeyUp添加事件侦听器,我会加上。我知道我关闭了此功能,但是如果页面加载时有文本,我将如何添加该类?如果使用框中的文本刷新,则不会应用该类,即使是在
keyup
上,如果要在页面加载时应用,则只需将条件放在document ready下任何函数的外侧即可。但是,如果您认为它总是存在,则将该类有效地放入textarea标记本身,或者当您为textarea赋值时,您也可以添加该类。如果您向表单添加文本并刷新表单,则不会清除该表单。我只是想检查在刷新时是否加载了文本。您可以保留使用on change事件添加样式类的条件,并在页面加载时触发change事件。我尝试了,但没有成功。“它不起作用”是什么意思?一个小个子从电脑里爬出来告诉你了?我试过了,但没用。“它不起作用”是什么意思?一个小个子从电脑里爬出来告诉你了?
 $(document).ready(function(){

        $('#message').trigger('change');//if you initially want to check the textarea

        $('#message').on('change', function(){
        var $messageval = $(this).val();
        if ($messageval.length != 0 ){
         if (!$(this).hasClass("valid")) {
            $(this).addClass("valid");
          }
        }
        else ($messageval.length == 0 ){
          if ($(this).hasClass("valid")) {
             $(this).removeClass("valid");
          }
        }
      });
    });