Javascript函数中的HTML无法正常工作

时间:2009-06-25 15:40:16

标签: javascript html function textarea

我使用以下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标记<dd></dd>来创建缩进。有趣的是textarea属性和HTML标记<dd></dd>都在我的表单体内工作,而不是在我的JS函数中。谁会知道我做错了什么。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

应该是:

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

另外,根据您的Doctype,您可能想要更改

<br>

<br />

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

答案 2 :(得分:0)

我不知道你的语法错误是否是由于你在这里复制你的代码而引起的,但这里有一些我在你的代码中注意到的事情。

  • 您是否故意忽略行尾的半列?
  • HTML礼节应该用引号括起来。 (虽然没必要)

同样关于<dd></dd>,您是否将它们放在定义列表(dl)中?

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