|
|
|
| Привет всем.
Давно уже рботает кусок кода, где имени поля ставится в соотвтетствие какая-то из таблиц и формируется SELECT- в тексте понятно что nm_mysp1 изменяет значение в зависимости от выбора элемента из списка.
<script language="Javascript" type= "text/javascript">
function selSps(q){
if (document.getElementById)
{
var sel1 = document.getElementById('nm_mysp1');
sel1.value = q.value;
}
}
</script>
<td><input type=text name=arr[_mysps] value='' size = 6 id=nm_mysp1 >
<td><input type=text name=arr[_mysps] value='' size = 6 id=nm_mysp2 >
<td><select name='spr_sps' onchange=selSps(this)>
<option value=1>A1</option>
<option value=2>A2</option>
<option value=3>A3</option>
</select>
|
Появилась задача - сформировать значения второго поля в текстовом виде, и чтобы не делать 2 одинаковых списка, хотелось бы использовать один. Т.е. выбираем 1-й пункт и nm_mysp1 становится равным 1, а nm_mysp2 = А1.
Собственных знаний не хватает. Буд благодарен за элегантное решение. | |
|
|
|
|
|
|
|
для: larush2
(15.03.2011 в 14:39)
| | Хм... может имеет смысл воспользоваться многострочным списком (тот же select, с атрибутом multiple='multiple' и количеством строк, скажем, size='4')? Зажимая клавишу Ctrl, вы сможете выбирать более одного значения. | |
|
|
|
|
|
|
|
для: cheops
(15.03.2011 в 14:45)
| | Cheops... не в том дело. Список один и тот-же, но в 1 поле нужно поместить значение Value, в другой, то что предъявляется пользователю.
<option value=1>Рубль
<option value=2>Доллар
<option value=3>Евро
нужно получить при выборе пользователя и "2" и "Доллар" в разных полях за "один присест"
|
| |
|
|
|
|
|
|
|
для: larush2
(15.03.2011 в 14:49)
| | Хм... может в <option> засунуть еще id, который будет зависеть от value и вытаскивать потом значение между <option> и </option> при помощи innerHTML? | |
|
|
|
|
|
|
|
для: cheops
(15.03.2011 в 14:53)
| | Ну я не настолько опытен... Можно пример ? ... на примере денег :-)
Думаю что можно сделать 2 функции, 1 для одного поля, 2- для другого, вызывать их с Select , вторую вызывать с OnBlur или еще чего..., передавать ей Value а в функции анализировыать массив... Вобщем что-то у меня такое замороченное выходит. | |
|
|
|
|
|
|
|
для: larush2
(15.03.2011 в 14:59)
| | Имеется в виду вот что
<script language="Javascript" type= "text/javascript">
function selSps(q){
if (document.getElementById)
{
var sel1 = document.getElementById('nm_mysp1');
sel1.value = q.value;
var sel2 = document.getElementById('nm_mysp2');
sel2.value = document.getElementById('id' + sel1.value).innerHTML;
}
}
</script>
<td><input type='text' name='arr[_mysps]' value='' size = '6' id='nm_mysp1' >
<td><input type='text' name='arr[_mysps]' value='' size = '6' id='nm_mysp2' >
<td><select name='spr_sps' onchange='selSps(this)'>
<option id='id1' value='1'>A1</option>
<option id='id2' value='2'>A2</option>
<option id='id3' value='3'>A3</option>
</select>
|
| |
|
|
|
|
|
|
|
для: larush2
(15.03.2011 в 14:39)
| |
var sel1 = document.getElementById('nm_mysp1');
sel1.value = q.value;
var sel2 = document.getElementById('nm_mysp2');
sel2.value = q.value;
|
Если я правильно понял. | |
|
|
|
|
|
|
|
для: SHAman
(15.03.2011 в 14:47)
| | Да правильно, но исходный массив- Select у меня один... См. выше пример про деньги :-) | |
|
|
|
|
|
|
|
для: larush2
(15.03.2011 в 14:39)
| |
<script language="Javascript" type= "text/javascript">
function selSps(q){
if (document.getElementById)
{
var opt = q.options[q.selectedIndex];
document.getElementById('nm_mysp1').value=opt.value;
document.getElementById('nm_mysp2').value=opt.text;
}
}
</script>
<td><input type=text name=arr[_mysps] value='' size = 6 id=nm_mysp1 >
<td><input type=text name=arr[_mysps] value='' size = 6 id=nm_mysp2 >
<td><select name='spr_sps' onchange=selSps(this)>
<option value=1>A1</option>
<option value=2>A2</option>
<option value=3>A3</option>
</select>
|
upd: Была опечатка, поправил | |
|
|
|
|
|
|
|
для: The Electronic Cat
(15.03.2011 в 15:45)
| | значение из opt.text пишет UDEFINED, я так и сам пробовал :-) | |
|
|
|
|
|
|
|
для: larush2
(15.03.2011 в 16:00)
| | Какой браузер? Только что проверил в Firefox 3.5, Google Chrome 10.0, IE 8 | |
|
|
|