【问题标题】:Check if a textarea contains a symbol and delete all after the symbol检查文本区域是否包含符号并删除符号后的所有内容
【发布时间】:2014-03-16 22:44:17
【问题描述】:

我有一个电子邮件页面,当我单击一个按钮时会加载它。 “收件人:”字段包含太多电子邮件,我想在页面加载时运行一个脚本以检查该框是否包含分号,如果包含,则应删除分号和后面的任何文本它。

这是我在页面上查看脚本时文本区域的 HTML 代码:

<textarea class="EDIT" name="email_to" id="email_to" maxlength="8000" rows="1" style="height:2em;" cols="80">test@testemail.com;test2@testemail.com;</textarea>

因此,当页面加载时,脚本应该检查 email_to 字段。例如:

[test@testemail.com;test2@testemail.com]

应该删除它的分号以及它后面的任何内容:

[test@testemail.com]

我目前的情况如下

function checkTextField(email_to) {
    var check = (email_to.indexOf(';');
    if (check != -1)  
        {
        check.replace(/;.*/, '');
        }
}

我认为我的主要问题是,当我执行 console.log(email_to) 时,它会为我提供文本框的所有样式和所有内容,而我想要的只是文本区域中保存的文本。

它可能不需要在函数中,可能只是一个 onload 脚本,但我是 javascript 新手,所以我不确定要使用什么。

【问题讨论】:

  • 先正确语法!
  • if check != -1 使用错误if (check != -1 )

标签: javascript text replace textarea indexof


【解决方案1】:

据我了解,您希望对“email_to.value”进行操作,而不是“email_to”文本区域本身

【讨论】:

    【解决方案2】:

    只取 html,而不是整个元素。

     function checkTextField(email_to) {
        var ht = email_to.innerHTML;
        var check = (ht.indexOf(";");
        if (check != -1)
        {
           // Bla bla
        }
     }
    

    注意:这个功能是从你那里复制的,我只是添加了你要求的,你有更多的问题。

    【讨论】:

      【解决方案3】:

      所以经过一番搜索后,我发现我的做法是不必要的,并被告知使用以下内容:

      function checkTextField (str) {
      
          return str.substring(0, str.indexOf(';'));
      }
      
      $('#email_to').val(checkTextField($('#email_to').val()));
      

      这似乎完美无缺,看来我也需要重新学习 jQuery!

      【讨论】:

        猜你喜欢
        • 2015-02-16
        • 2019-04-25
        • 1970-01-01
        • 2020-12-03
        • 2010-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多