2013-03-06 60 views
1

我在页面上有一个textarea。并决定验证这个元素。我插入简单的文本,并在JS我检查这个元素的长度。但是,当我删除所有的文本,我可以保存没有任何问题。我看到在Firebug和textarea的我发现检测textarea里面的标记符号

<ul></ul><br/> 

}

// JS

for(var i=0; length > i; i++){ 
     value = textElements[i].value; 
     if(value == "" ||(value == "<br/>" && element.tagName == "TEXTAREA")){ 
      full = false; 
      emptyElements.push(elements[i]); 
     } else { 
      empty = false; 
      elements[i].style.borderColor = ""; 
      elements[i].style.border = ""; 
     } 
    } 

广告HTML

<br /><div id="edit-contentFrame-form:editor" style="visibility:hidden"><textarea id="edit-contentFrame-form:editor_input" name="edit-contentFrame-form:editor_input"><h3></h3><h3></h3><h3><br/></h3><ul> 
</ul></textarea></div> 

我试图找到现有的方法来解决这个问题。但没有什么可发现的。

///EDITED 

function isEmptyTextArea(){ 
       var str = document.getElementById('edit-contentFrame-form:editor_input').value; 
       var regexp = new RegExp("(&lt;+[\w]+&gt;+)*", "g"); 
       var matches_array_tags = str.replace(regexp, ''); 

       if(matches_array_tags.length == 0){ 
        return true; 
       } 
       return false; 
      } 
+3

请发表您的HTML和JS代码。 – BenM 2013-03-06 07:21:00

回答

0

我解决我的旁边js函数问题

function isCompleteTagContent(str){ 
    var re= /<\S[^><]*>/g; 
    var matches_array_tags = str.replace(re, ""); 

    if(matches_array_tags.trim().length == 0){ 
     return true; 
    } 
    return false; 
} 
1

您可以使用正则表达式来代替,并剥去textarea的所有“标记符号”标签,如果你不希望人们能够输入HTML。

+0

我不想替换或去掉用户的符号。我只是想找到检查textarea的方法,它只包含marup符号 – Ray 2013-03-06 07:32:11

+0

如果我复制textarea内容。我如何用正则表达式替换所有“标记符号”? – Ray 2013-03-06 07:49:25

+0

正则表达式也可以这样做,有一个.test()方法“用于测试字符串中的匹配,它返回true或false。”你可以使用它(见更多:https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions#Working_with_Regular_Expressions) – sweetamylase 2013-03-06 07:49:35

1
var txtarea = document.getElementById('txtarea'); 
if(escape(txtarea.value) === '') 
    // textarea is empty 

不包括空格:

if(escape(txtarea.value.trim()) === '') 
    // textarea is empty (not including whitespaces) 
+0

'value = escape(textElements [i]).value;'Intellige IDEA给出一个转义的弃用函数 – Ray 2013-03-06 07:34:54

+0

@Ray然后使用encodeURI() – karaxuna 2013-03-06 07:38:27

+0

不,它不会帮助encodeUri只是替换UTF-escape-序列。包含标记符号的Textarea值不会清空 – Ray 2013-03-06 07:47:51