Для начала я поискал на сайте и нашел это:
Как заполнить текстовое поле с раскрывающимся списком выбор
но это не соответствовало моим потребностям, так как я создаю очень длинные шаблоны, а описанный выше метод был бы слишком трудоемким и непрактичным, поскольку это означало бы заполнение атрибута value
каждого тега <option>
моими шаблонами.
Итак, вот код:
<script type="text/javascript">
//<![CDATA[
function showCSTemplates(sel){
locations =[ "", /*this remains blank for first selection in drop-down list*/
/*option 1*/
" This is template 1 that will appear in a
textarea keeping
its formatting
as
is. ",
/*option 2*/
" This is template 2 that
will appear in a
textarea keeping its
formatting as is.
Credentials:
Contact Info: ",
/*option 3*/
" This is template 3 that will appear in a
textarea keeping its formatting as is.
Donec tortor lorem,
ornare vitae commodo nec,
sagittis et nunc.
Maecenas sagittis quam ",
/*option 4*/
"etc",
/*option 5*/
"etc...", ];
srcLocation = locations [sel.selectedIndex];
if (srcLocation != undefined && srcLocation != "") {
document.getElementById('CSTemplates').innerHTML = srcLocation;
}
} //]]>
</script>
и вот разметка:
<h1>Note Generator</h1>
<div class="left">
CSTemplates
<p>
<select class="c10">
<option selected="selected" value="" id="Templates" onchange="showCSTemplates(this);">Please select a template...</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</p>
<p>
<textarea cols="30" rows="20" readonly="readonly" id="CSTemplates">
Templates will auto-populate
here depending on the
selection made from the
[CSTemplates]
drop-down list.
</textarea>
</p>
</div><!--left ends here-->
Хуже всего то, что я даже не получаю ошибку сценария, когда тестирую это, он просто вообще не работает, поэтому я не знаю, где я ошибся. Я сделал аналогичную страницу, используя теги <input type="text">
, и они работали нормально, но я не могу заставить его работать с тегами <textarea>
, как бы я ни пытался.
Любая помощь будет очень признательна! Заранее спасибо!
Отредактировано 2 сентября 2011 г., 13:17:34
Чтобы пояснить сказанное выше, где я сказал "Я даже не получаю ошибку скрипта, когда тестирую это, он просто вообще не работает"
я имею в виду, что если я оставлю все шаблоны в одной строке, т.е.
/*option 1*/
" This is template 1 that will appear in a textarea keeping its formatting as is. ",
тогда я не получаю ошибку. Однако если я введу разрывы строк для форматирования, как указано выше:
/*option 1*/
" This is template 1 that will appear in a
textarea keeping
its formatting
as
is. ",
то я получаю сообщение об ошибке "Незавершенная строковая константа". Решит ли эту ошибку использование \n
? Кроме того, я исключил это из сценария, потому что не знаю, как это сделать, но в <textarea>
, где написано
Templates will auto-populate
here depending on the
selection made from the
[CSTemplates]
drop-down list.
Мне нужно стереть, когда пользователь выбирает выбор из раскрывающегося списка, и чтобы <textarea>
заполнялся соответствующим выбором из сценария. Спасибо!