【问题标题】:HTML within Javascript Function Not Working ProperlyJavascript 函数中的 HTML 无法正常工作
【发布时间】:2009-06-25 15:40:16
【问题描述】:

我正在使用以下 JavaScript 函数:

function Projects()
{
    var PrjTb1 = "<input type=text id=PrjNme size=100/>"
    var PrjTb2 = "<textarea rows=5 col=200 wrap=hard></textarea>"
    var Info = "1. Project or activity name:<br>" + PrjTb1 + "<br><br>2. Project or activity description:<br>" + PrjTb2 
    if (document.getElementById('PrjNo').value == 1)
    {
        document.getElementById('AllPrj').innerHTML = "<b>Project or activity 1.</b><br><br>" + Info
    }
}

这个函数在onclick事件之后执行良好;但是,声明的变量中的某些 HTML 部分不起作用。例如,在变量PrjTb2 中,我的textarea 的行和列不会改变。此外,我无法在变量中的任何位置添加 HTML 标记 &lt;dd&gt;&lt;/dd&gt; 以创建缩进。有趣的是,textarea 属性和 HTML 标记 &lt;dd&gt;&lt;/dd&gt; 在我的表单正文中工作,而不是在我的 JS 函数中。有谁知道我做错了什么。

【问题讨论】:

  • 请问您可以编辑您的代码以在代码块中正确格式化您的 javascript 吗?
  • 这与问题不太相关,但您真的,不应该使用 标签。此外,您可能希望以这种方式编写换行符
    。查看这篇关于 HTML 中要避免的 10 件事的精彩帖子:line25.com/articles/…
  • 感谢您的回复 - 我正在使用 标签使我的文本加粗。有没有更好的办法。我目前正在使用换行标记
    。很抱歉,但我不确定您在代码块中格式化 JS 是什么意思。
  • 您应该使用标签 而不是 。此外,如果您要使用的部分是某种标题,请尝试使用

  • 您似乎不确定您使用的是 HTML 还是 XHTML(XHTML 要求引用属性值并在标签中为 EMPTY 元素(输入、br、img 等)使用 /,而 HTML 使引号可选(有时)并且不在空元素中使用 /)

标签: javascript html function textarea


【解决方案1】:

不确定是否是问题所在,但我会将您的所有参数括在引号中。

<input type=text id=PrjNme size=100/>

应该是:

<input type='text' id='PrjNme' size='100' />

此外,根据您的 Doctype,您可能需要更改

<br>

<br />

直接 HTML 中允许的内容不一定允许使用 innerHTML。例如,在 Firefox 中,尝试在 JS 与 html 中的表单中嵌入表单,或者在 IE 中,尝试将块元素放入内联元素中。它们都可以正常工作,如果你在 HTML 中使用它,但如果你用 innerHTML 尝试它,两个浏览器都会抱怨。

【讨论】:

    【解决方案2】:

    可能是您的浏览器正在缓存您的 Javascript。尝试清除缓存。

    【讨论】:

      【解决方案3】:

      我不知道你的语法错误是不是因为在这里复制了你的代码,但这是我在你的代码中注意到的几件事。

      • 您是否故意在行尾省略半列?
      • HTML 属性应该用引号引起来。 (虽然不是必须的)

      关于&lt;dd&gt;&lt;/dd&gt;,您是否将它们放入定义列表(dl)中?

      因为它们不应该用作独立标签。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-06
      相关资源
      最近更新 更多