首页 > 其他分享 >在 input 输入框中有逗号自动替换换行符

在 input 输入框中有逗号自动替换换行符

时间:2022-11-16 12:55:47浏览次数:60  
标签:function target val 输入框 let input 换行符 textArea

背景

有一个业务场景, 将 excel 中的多列数据复制到 input 文本框中 , 需要将换行符替换成逗号(,) , 便于后台系统批量查询。

由于在粘贴数据到 input 中时,换行符会被删除,无法读取输入值的原始版本,导致无法实现此功能。

解决方案

jquery

$(function(){
    $('input').on('paste', function(e){
        var target = $(e.target);
        var textArea = $("<textarea></textarea>");
        textArea.bind("blur", function(e) {
            target.val(textArea.val().replace(/\r?\n/g, ', ') );
            textArea.remove();
        });
        $("body").append(textArea);
        textArea.focus();
        setTimeout(function(){
            target.focus();
        }, 10);
    });
});

react 版本

核心代码 :

  handlePaste(e: any) {
        if (!this.props.enableNewLineSeparate) {
              return;
        }
        let that = this;

        let target = e.target;
        let separator = that.props.newLineSeparator;
        const textArea = document.createElement('textarea')
        // 触发 forcus 事件,需要设置透明度为0; 如果设置 display:none ,无法触发事件
        textArea.style.opacity = '0';
        textArea.style.position = 'absolute';
        textArea.onblur = function (e: any) {
              let val = e.target.value;
              val = reactHelper.trimEnd(val, '\r\n')
              val = reactHelper.trimEnd(val, '\n')
              let n_val: string = val.replace(/\r?\n/g, separator);
              that.setValue(n_val)
              textArea.remove();
        }
        var parent = that.inputRef.parentNode;
        parent.appendChild(textArea)
        textArea.focus();
        setTimeout(function () {
              target.focus();
        }, 10);

  }

————————————————
原文链接:https://stackoverflow.com/questions/8975918/how-to-replace-newline-with-comma-in-input-using-jquery

标签:function,target,val,输入框,let,input,换行符,textArea
From: https://www.cnblogs.com/frank-zhang/p/16895511.html

相关文章

  • 2022-11-16 Unexpected end of JSON input
    vue+小程序,页面传参中的url路径有问题,导致传递过去后使用json.parse报错如题所示。原因:url中含有特殊字符无法被传递。解决方案:使用encodeURIComponent把参数编码,然后再......
  • input输入框禁止自动填写的解决方法 实测360 搜狗 猎豹等都有效
    其他输入框只需要加readonly<inputclass="tel_areainput"readonlyv-model="phone"placeholder="请输入手机号"type="tel"/><inputclass="code_areainput"rea......
  • FileInputStream 、FileOutputStream完成非文本文件复制
    【1】读入一个字节写出一个字节packagecom.msb.io02;importjava.io.*;/***@author:liu*日期:14:00:25*描述:IntelliJIDEA*版本:1.0*/publiccla......
  • FileInPutStream读取文件中内容
    【1】读取文本文件packagecom.msb.io02;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException......
  • linux input子系统的event编号修改
    linuxinput子系统的event编号修改在对接甲方的时候,一些input外设需要固定的input、event编号。而不同厂家不同型号的驱动在内核中加载的顺序不同,因此/dev/input下的event......
  • 学生选课系统之使得输入框中的值和单选框相互关联起来
    输入框的值和单选框相互关联就是,在输入框中输入的值会被赋予到一个id,然后,可以通过js对该值进行获取;(用.value获取)然后,对于单选框的话,可以设置几个不同的id值,分别在js中获......
  • vue input数据动态脱敏
    页面中放两个输入框,一个绑定真实数据、一个绑定脱敏数据,仅展示脱敏数据。<van-fieldv-model="person.cardNo"v-show="false"name="证件号码"......
  • sqlserver数据库 去除字段中空格,换行符,回车符
    使用REPLACE函数:特殊字符在SqlServerManagementStudio查询中显示为空格,但实际不是空格。在C#中能清晰的看到类似:\r\n的字符.​SQL中可以使用Replace函数来对某个字段里的......
  • android input
    通常,从EditText中获取字符串很简单:   EditTexttext=findViewById(R.id.textName);   Stringname=text.getText().toString();现在要从其中获得数字,就要做以......
  • odoo 输入框 禁止自动填充
    https://zhuanlan.zhihu.com/p/387878201ODOO的日期输入框在选择日期的时候会自动带出浏览器的历史记录,而这个历史记录意义不大,很影响选择日期,用户体验感非常不好,那么如何......