0

我有一个 textarea 字段,我希望用户无法将 HTML TAGS 输入到 textarea。

那可能吗?

例子

    <textarea rows="4" cols="30" id="textareadescription"></textarea>

在这个用户无法输入 HTML TAGS 之类的

      <button> Submit </button>
4

7 回答 7

6

你可以这样做

function Check(){

var reg =/<(.|\n)*?>/g; 

if (reg.test($('#YourTextAreaID').val()) == true) {

    var ErrorText ='do not allow HTMLTAGS';

    alert('ErrorText');

    }
}

更多 信息

http://www.pagecolumn.com/tool/all_about_html_tags.htm

于 2012-11-21T11:28:08.247 回答
2

我会这样做的方式如下。这可以通过将替换重构为一个函数来提高效率。但是我详细说明了它以简单地解释程序...

           var str =   $('#textareadescription').val();
           //Temporarily replace the HTML elements I can accept
            str = str.replace(/<\/b>/g, "@@/b@@");
            str = str.replace(/<br>/g, "@@br@@");
            str = str.replace(/<i>/g, "@@i@@");
            str = str.replace(/<\/i>/g, "@@/i@@");

            //render all other HTML elements harmless
            str = str.replace(/</g, "&lt;");
            str = str.replace(/>/g, "&gt;");

            //put back the HTML elements I can accept
            str = str.replace(/@@b@@/g,"<b>");
            str = str.replace(/@@\/b@@/g,"</b>");
            str = str.replace(/@@i@@/g,"<i>");
            str = str.replace(/@@\/i@@/g,"</i>");
            str = str.replace(/@@br@@/g,"<br>");


//At this point str should contain only the HTML elements that I can accept. 
于 2018-10-21T07:52:10.327 回答
1

如果您的输入文本并不真正需要这些,您可以阻止用户输入<和签名。>

以下 javascript 代码执行此操作:

$(function(){
    $('#textareadescription').on("keydown", function(e){
        if (e.shiftKey && (e.which == 188 || e.which == 190)) {
            e.preventDefault();
        }
    });
});​

在此处试用工作演示:http: //jsfiddle.net/AHrrP/1/

于 2012-11-21T10:48:32.090 回答
0

以下是您可以选择的选项:

  1. 您可以在 Textarea 上禁用 < 或 > 符号。将向您展示如何在特定按键上执行某些操作。
  2. 您让他们在 textArea 中编写 html 标签。提交后,您重新处理字符串,然后将其发送到服务器。

下面是重新处理您的 textArea 内容的脚本

function reProcessText(){

        var text= $('myTextArea').html();
        var startTag=-1;
        var endTag=-1;
        for(var i=0;i<text.length;i++){
            if(text[i]=='<')
             startTag=i;
        if(text[i]=='>')
             endTag=i;
        if(startTag != -1 && endTag!=-1){
             text = text.substring(0,startTag) + text.substring(startTag+1, endTag);

            startTag=endTag=-1;
          }
        }  
}

我编写了一个超级简单的算法来查找和替换 html 标签。当然,根据您的需要,您可能必须使用更复杂的一种。

于 2012-11-21T10:39:19.313 回答
0

场景:

  1. 用户在文本区域中输入“提交”。
  2. 稍后,您复制该值并将其显示在 div 中。

所以你想做的是:

  1. 确保 div 没有显示按钮。它将显示用户键入的确切值。

您可以在此处使用 jquery 的 html() 和 text() 函数。

例如:如果使用这个,结果 div 会生成一个按钮。

    <textarea rows="4" cols="30" onkeyup="$('#divDesc').html($('#textareadescription').val());" id="textareadescription"></textarea>
    <div id="divDesc"> Result </div>

但是如果你使用这个,结果 div 不会生成按钮,而是显示值:

    <textarea rows="4" cols="30" onkeyup="$('#divDesc').text($('#textareadescription').val());" id="textareadescription"></textarea>
    <div id="divDesc"> Result </div>
于 2012-11-21T10:45:16.963 回答
0

为了去除 html 标签,我使用。mysqli_real_escape_string(); 添加斜杠();

于 2018-10-21T08:08:09.003 回答
-2
<script>
    $(document).ready(function() {
        $('#description').summernote(
            {
                placeholder: 'Description',
                tabsize: 2,
                height: 100,
                toolbar: [
                    ['style', ['bold', 'italic', 'underline', 'clear']],
                    ['fontsize', ['fontsize']],
                    ['para', ['ul', 'ol', 'paragraph']],
                    ['height', ['height']]
                ],
                codemirror:{theme: 'monokai'},
                fontNames: ['Arial', 'Arial Black', 'Comic Sans MS', 'Courier New']
            }
        );
    });
</script>
于 2021-01-12T09:27:30.377 回答