textarea带格式保存输入的数据

1. 使用富文本summernote

        summernote官网https://summernote.org/

        同时参考若依SpringBoot项目RuoYi: 🎉 基于SpringBoot的权限管理系统 易读易懂、界面简洁美观。 核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。直接运行即可用

1.1 使用

 1.1.1 引入

<link href="https://cdn.bootcss.com/bootstrap/3.3.4/css/bootstrap.css" rel="stylesheet">
<link href="https://cdn.bootcss.com/summernote/0.8.10/summernote.css" rel="stylesheet">
<script src="https://cdn.bootcss.com/jquery/1.11.0/jquery.js"></script>
<script src="https://cdn.bootcss.com/bootstrap/3.3.4/js/bootstrap.js"></script>
<script src="https://cdn.bootcss.com/summernote/0.8.10/summernote.js"></script>
<script src="https://cdn.bootcss.com/summernote/0.8.10/lang/summernote-zh-CN.js"></script>

 还可以参考若依项目进行引入

1.1.2 初始化

Summernote的初始化只需要在页面中创建一个标签(input/textarea/div)承载就OK了。

html

<div class="summernote"></div>
<textarea class="summernote" name="replyContent" required></textarea>

 js

$(document).ready(function () {
    $('.summernote').summernote({
         toolbar: [//自定义头部
         // [groupName, [list of button]]
         ['style', ['bold', 'italic', 'underline', 'clear']],
         ['font', ['strikethrough', 'superscript', 'subscript']],
         ['fontsize', ['fontsize']],
         ['color', ['color']],
         ['para', ['ul', 'ol', 'paragraph']],
         ['height', ['height']]
         ],
         lang: 'zh-CN',//国际化
         focus: true,//焦点
         height: 150,//高度
         tabDisable: true,
         callbacks: {//回调:当设置了ie浏览器禁用backspace按键时使用
             onKeydown: function (e) {
                 e.stopPropagation();
             }
         }
   })
})

1.1.3 取值

var textVal = $('.summernote').summernote('code');//推荐
var textVal = $("[name='replyContent']").val()

1.1.4 赋值

$('.summernote').summernote('code','要赋的值');//推荐
$("[name='replyContent']").val("需要赋的值")

2. 使用文本域textarea或者input

2.1 当设置了全局禁用Tab键时

html

<textarea class="form-control" style="height: 200px;" name="replyContent" onkeydown="addTabOption(this)" required></textarea>

js

function addTabOption(opt){
    if(event.keyCode ===9){
        opt.value = opt.value + "    "//自定义空格个数
        // 阻止默认切换元素的行为
        if (event && event.preventDefault) {
             event.preventDefault()
        } else {
             window.event.returnValue = false
        }
    }
}

有点不合理:比如说我在文字中使用Tab时,会将空格拼接在后面。

2.2 使用replace替换空格、换行等

 function contentInit(val){
     return val.replace(/&nbsp;/g,'')//替换&nbsp;
               .replace(/\r\n/g, '<br/>')//替换\r\n
               .replace(/\n/g,'<br\>')//替换\n
               .replace(/\s/g, ' ')//替换空格、&nbsp;
               .replace(/\/n/g,'\n')//替换\n
}

2.3 当后端过滤器中设置了去除数据前后空格、标签时

拼接一个值

var replyContent = "reply"+$("[name='replyContent']").val();
$("[name='replyContent']").val(replyContent)

 在后端控制器中处理掉在保存

String oldStr = replyTemplate.getReplyContent();
String removeStr = "reply";
if(oldStr != null){
    replyTemplate.setReplyContent(oldStr.replace(removeStr,""));
}

3. 其他

3.1 格式化select标签下option的text

$(function () {
    $("#replyRc option").each(function (){
        let txt = $(this).text();
        if(txt != null){
            let data = txt.replace(/&nbsp;/g,'').replace(/\/n/g,'\n').replace(/<br>/g,'\n');
                $(this).text(data)
        }
    })
})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在小程序中,可以使用textarea组件来获取用户输入的文字。在点击按钮时,可以使用bind:tap或者catch:tap来绑定按钮的点击事件,在事件处理函数中,使用event.detail.value来获取textarea组件中的值。 示例代码: WXML: ``` <textarea placeholder="请输入文字" bindinput="getInputValue" id="textarea"></textarea> <button bind:tap="submitData">点击提交</button> ``` JS: ``` Page({ data: { inputValue: "" }, getInputValue: function (e) { this.setData({ inputValue: e.detail.value }) }, submitData: function () { console.log(this.data.inputValue) } }) ``` 在这个例子中,当用户在textarea输入文字并点击按钮时,submitData函数会被调用,并在控制台中打印出用户输入的文字。 ### 回答2: 微信小程序中的textarea是用于用户输入多行文本的组件,我们可以通过点击按钮的方式获取textarea输入的文字数据,将其入到相应的函数中进行处理。 首先,在wxml文件中,我们需要编写相应的代码。示例代码如下: ```html <view> <textarea bindinput="textareaInput"></textarea> <button bindtap="handleButtonClick">点击按钮</button> </view> ``` 在这段代码中,textarea绑定了一个名为`textareaInput`的事件,该事件会在用户输入时被触发。按钮绑定了一个名为`handleButtonClick`的事件,该事件会在按钮被点击时被触发。 接下来,在对应的js文件中,我们需要编写相应的函数来处理按钮点击事件,并获取textarea输入的文字数据。示例代码如下: ```javascript Page({ data: { textareaValue: '' // 初始化textarea的值为空 }, textareaInput(e) { this.setData({ textareaValue: e.detail.value // 获取用户输入的文字并存储在data中的textareaValue变量中 }); }, handleButtonClick() { const inputData = this.data.textareaValue; // 获取data中的textareaValue变量的值,即用户输入的文字数据 // 在这里可以进行相应的数据处理操作 console.log(inputData); } }) ``` 在这段代码中,我们使用了data来存储textarea的值,通过`textareaInput`函数来更新data中的textareaValue变量,以获取用户输入的文字数据。在`handleButtonClick`函数中,我们通过`this.data.textareaValue`来获取保存在data中的textareaValue变量的值,即用户输入的文字数据,并进行相应的处理。 这样,我们就可以实现点击按钮将textarea输入的文字数据到函数中进行处理了。 ### 回答3: 在微信小程序中,我们可以使用textarea组件来实现输入文字的功能。当用户在textarea输入了文字后,我们可以通过绑定一个input事件来获取输入内容,并将其保存在一个变量中。接下来,我们可以在点击按钮时,将这个变量作为参数传递给一个函数来处理。 首先,在小程序的wxml文件中,我们需要添加一个textarea组件和一个按钮组件: ```html <view> <textarea bindinput="getText"></textarea> <button bindtap="handleClick">点击按钮</button> </view> ``` 其中,bindinput表示textarea输入事件,我们在这个事件中调用getText函数来获取输入内容。而bindtap表示按钮的点击事件,我们在这个事件中调用handleClick函数来处理数据。 接下来,在小程序的js文件中,我们需要定义这两个函数: ```javascript Page({ data: { textContent: '' }, getText: function(e) { this.setData({ textContent: e.detail.value }) }, handleClick: function() { // 在这里可以通过this.data.textContent来获取输入的文字内容,进行处理 console.log(this.data.textContent); // 在这里调用其他函数来处理数据,或者进行其他操作 // ... } }) ``` 在getText函数中,我们通过调用setData函数将textarea中的输入内容保存在data中的textContent变量中。 在handleClick函数中,我们可以通过this.data.textContent来获取之前保存的文字内容,并进行处理。在这里,我简单地通过console.log打印了一下文字内容,你可以在这里调用其他函数来处理数据,或者进行其他操作。 这样,当用户在textarea输入文字后,点击按钮时,数据会被到handleClick函数,并可以在这个函数中进行进一步的处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值