2009-10-13 128 views
2

我使用这个(jQuery的)与<br />替换所有<br> s到清除验证错误更换:所有<br>与<br />

$("<br>").replaceAll("<br />"); 

,但它不减少任何验证错误。验证器是否检查原始来源?

+13

是的,当然。我认为你错过了验证的重点。 – Kobi 2009-10-13 14:13:24

+9

这是迄今为止解决这个问题最糟糕的方法。 如果您想使用
2009-10-13 14:14:57

回答

3

没有理由这样做。 XHTML已经死了。您切换到DOCTYPE HTML 5并回到愉快地使用未关闭标签:

<!DOCTYPE html> 
+3

XHTML没死。 XHTML 2不再处于积极的发展阶段,但仍然有充分的理由使用XHTML,并且它不会在任何地方发生。 XHTML 1.1的问题在于大多数人不会将它们的页面作为xml来使用,这是使用XHTML的主要原因。但是有这样的应用程序,所以只是因为你选择不使用它,并不会使它死掉,并且它不会使这是一个有用的答案。 – idrumgood 2009-10-13 14:54:25

+0

同意上面的评论,但在这种情况下,这是有帮助的。我可以更改文档类型。 :) – 3zzy 2009-10-13 15:53:28

+2

那么你的问题应该是“我如何验证其中有'
''的页面?” – idrumgood 2009-10-13 17:15:08

5

验证器不运行JavaScript。他们解析HTML并将其与声明的doctype的模式进行比较。

您将需要替换源文件/视图中的<br>,而不是在客户端。

11

JQuery只会在文档被渲染后触发。页面加载的过程中会发生像下面

  1. 征求页由
  2. 页面发送给客户机
  3. 页面加载
  4. 页面进行验证
  5. JQuery的火灾
  6. 中断标记被替换

我会建议只是做ite-wide查找并替换所有<br>标记并将其替换为<br />

+0

,请使用HTML文档而不是XHTML文档类型。我同意,您可以在Javascript之外执行任何操作。 – LiamB 2009-10-13 15:59:46

0

首先,如前所述,验证程序会检查html文件,并且不会运行任何内容。 旁边,如果你想HTML是有效的,那么当然有更多的
..你为什么不只是使用HTML编辑器?

1

的HTML解析为DOM模型(步骤3在加里的帖子),其中<br><br />被视为相等。通过JavaScript向HTML页面添加元素,无论您是使用jQuery还是其他任何方式,都会解析元素并将其添加到DOM。内部HTML的外观如何不再是浏览器所关心的重要内容。

如果您使用innerHTML,您可以自己查看。将任何HTML文档中的下列(没关系,如果它的XHTML,HTML4或HTML 3.2):

<p onclick="alert(this.innerHTML);">BR: <br />self close</p> 
<p onclick="alert(this.innerHTML);">BR: <br>open</p> 
<p onclick="alert(this.innerHTML);">BR: <BR>open capitals</p> 

加载它在浏览器中,点击它。

在IE上,所有三种变体都显示为"<BR>",在FF,Chrome和Opera上,所有三种变体都显示为"<br>"。这就是浏览器在内部代表HTML的方式。在JavaScript中使用有效的HTML或无效的HTML不会改变这一点。更糟的是:内部HTML表示不是有效的XHTML,即使文档是!

相关问题