我在页面上引用了HtmlEditor文本编辑器,代码如下:
<textarea name="content" id="content" style="display:none" rows="" cols="" ></textarea>
<iframe id="iframeEditor" name="iframeEditor" style="width: 98%; height: 100%;" src="${ctx}/plugins/editor/index.html?ID=content" frameborder="0" scrolling="no"></iframe>我取content里面的内容JS如下:
var content = window.frames['iframeEditor'].window.frames['HtmlEditor'].document.getElementsByTagName('BODY')[0].innerHTML;问题:
   要实现功能,在提交之前判断输入框内容是否全部为空(包括换行)   1、当用户刚跳转到文本编辑器的页面,不在输入框里输入任何内容,提交时用以上js得到的content为空
      但当用户输入多个空格时(点击多次空格键)alert(content)得到的结果为&nbsp;&nbsp;(多个&nbsp;),
      请问怎么样判断用户输入的内容全部为空格(包括换行)?
   2、当用户跳转到编辑器页面,在输入框里输入内容,然后再清除,再输入多个空格时,alert(content)得到的结果为
      <p>&nbsp;&nbsp;</p>(&nbsp点击多少次空格键就有多少个),
      这时怎么判断用户输入内容全部为空(包括换行)?
上面问题补充,如果用户输入的内容中包含有空格,比如输入abcde,在d后面输入了空格,alert(content)结果为abcd&nbsp;e
同样输入后再清除再输入相同的字符串alert的结果为<p>abcd&nbsp;e</p>这种情况下,不要把中间的空格过滤。以上用js怎么判断?
希望大家都来关注一下!谢谢

解决方案 »

  1.   

    正则嘛
    replace(/<p>[&nbsp;]*<\/p>/g,"")
    编辑器里的换行貌似就是2个P标签吧。
      

  2.   

    也不一定就是<p>的事 如果他用编辑器弄了个<font></font>呢 肯定也算是空吧
    所以/^(<[^><]+>|\s|&nbsp)+$/
    如果匹配 则说明是空
      

  3.   

    去网上查询一些过滤HTML标签的正则表达式  然后你自己可以封装起来 以后就方便多了
      

  4.   

    var _FUN_TRIM=function(a){return a.replace(/^\s+|\s+$/g,"")};
      

  5.   

    要是用户弄了1个img标签进去呢,那样把html标签都去掉就不行了因用户输入内容再删除,会自动加<p>,所以我觉得只要考虑加<p>的就可以了if(/^(<p>|</p>|\s|&nbsp;)+$/i.test(content)){
      alert("内容不能为空");
      return false;
    }