HTML внутри функции Javascript не работает должным образом - PullRequest
0 голосов
/ 25 июня 2009

Я использую следующую функцию 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 строки и столбцы моей текстовой области не изменяются. Кроме того, я не могу добавить HTML-теги <dd> и </dd> в любом месте переменных, чтобы создать отступ. Что интересно, и свойства textarea, и теги HTML <dd> и </dd> работают внутри тела моей формы, но не в моей функции JS. Кто-нибудь знает, что я делаю не так.

Ответы [ 3 ]

0 голосов
/ 25 июня 2009

Не уверен, что это проблема, но я бы заключил все ваши параметры в кавычки.

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

действительно должно быть:

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

дополнительно, в зависимости от вашего типа документа, вы можете изменить

<br>

до

<br />

Вещи, которые разрешены в прямом HTML, не обязательно разрешены с использованием innerHTML. Например, в Firefox попробуйте встроить форму в форму в JS vs html или в IE, попробуйте поместить элемент блока внутри встроенного элемента. Они оба работают нормально, если у вас есть это в HTML, но если вы попробуете это с innerHTML, оба браузера будут жаловаться.

0 голосов
/ 25 июня 2009

Я не знаю, произошла ли ваша синтаксическая ошибка из-за того, что вы скопировали здесь код, но вот несколько вещей, которые я заметил в вашем коде.

  • Вы специально опускаете полуколонны в конце строк?
  • Свойства HTML должны быть заключены в кавычки. (Хотя и не обязательно)

Также относительно <dd></dd>, вы помещали их в список определений (dl)?

Потому что они не должны использоваться как отдельные теги.

0 голосов
/ 25 июня 2009

Возможно, ваш браузер кэширует ваш Javascript. Попробуйте очистить кеш.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...