我有一个 textarea 字段,我希望用户无法将 HTML TAGS 输入到 textarea。
那可能吗?
例子
<textarea rows="4" cols="30" id="textareadescription"></textarea>
在这个用户无法输入 HTML TAGS 之类的
<button> Submit </button>
我有一个 textarea 字段,我希望用户无法将 HTML TAGS 输入到 textarea。
那可能吗?
例子
<textarea rows="4" cols="30" id="textareadescription"></textarea>
在这个用户无法输入 HTML TAGS 之类的
<button> Submit </button>
你可以这样做
function Check(){
var reg =/<(.|\n)*?>/g;
if (reg.test($('#YourTextAreaID').val()) == true) {
var ErrorText ='do not allow HTMLTAGS';
alert('ErrorText');
}
}
更多 信息
我会这样做的方式如下。这可以通过将替换重构为一个函数来提高效率。但是我详细说明了它以简单地解释程序...
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, "<");
str = str.replace(/>/g, ">");
//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.
如果您的输入文本并不真正需要这些,您可以阻止用户输入<
和签名。>
以下 javascript 代码执行此操作:
$(function(){
$('#textareadescription').on("keydown", function(e){
if (e.shiftKey && (e.which == 188 || e.which == 190)) {
e.preventDefault();
}
});
});
在此处试用工作演示:http: //jsfiddle.net/AHrrP/1/
以下是您可以选择的选项:
下面是重新处理您的 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 标签。当然,根据您的需要,您可能必须使用更复杂的一种。
场景:
所以你想做的是:
您可以在此处使用 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>
为了去除 html 标签,我使用。mysqli_real_escape_string(); 添加斜杠();
<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>