Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > <select> <option>


Автор: magrussia 22.3.2006, 14:49
Есть список, как его замутить так чтобы при выборе оптиона, в соседнюю ячейку писалась цифра и производилось умножение на введённое кол-во. С умножением и тд, я разобрался. Как прицепитЬ? Подкините идейку?

Код

 <td><select name="select" style="width:250px" onChange="window.location = this.options[this.selectedIndex].value">
      >
      <option value="">3квт</option>
      <option value="">5квт</option>
      <option value="">10квт</option>
      <option value="">25квт</option>
      <option value="">50квт</option>
      <option value="">свыше 50квт</option>
      <option value="">2 квт</option>
    </select></td>
    <td>888</td>
    <td></td>
    <td></td>



<td>888</td> - вот сюда должно вводится число в зависимости от оптиона

Автор: DEER 22.3.2006, 15:04
ты на верном пути smile действительно нужно писать в onchange

Если я правильно всё понял, то примерно так:
Код

 function mmm(sel)
 {
    var val = sel.options[this.selectedIndex].value; //выбрали какую то строку
    var old_val = document.getElementById("mytd").value;  //получили то что раньше было в ячейке
    var new_val = eval()val*new_val;  // полученные значения перемножим
    document.getElementById("mytd").value = new_value; //запишем обратно в ячейку
 }

Код

<td><select name="select" style="width:250px" onChange="mmm(this)">    
      >    
      <option value="3">3квт</option>    
      <option value="5">5квт</option>    
      <option value="10">10квт</option>    
      <option value="25">25квт</option>    
      <option value="50">50квт</option>    
    </select></td>    
    <td id='mytd'>888</td>    
    <td></td>    
    <td></td>

Автор: magrussia 22.3.2006, 15:24
Немного не так,
Код

 <td><select name="select" style="width:250px" onChange="mmm(this)">  
     
      <option value="">3квт</option>                                  //значение строки - 100
      <option value="">5квт</option>                                  //значение строки - 200
      <option value="">10квт</option>                                //значение строки - 300
      <option value="">25квт</option>                                //значение строки - 400
      <option value="">50квт</option>                                //значение строки - 500
      <option value="">свыше 50квт</option>                     //значение строки - 600
      <option value="">2 квт</option>                                 //значение строки - 700
    </select></td>
    <td id='mytd'>888</td> 
    <td></td>
    <td></td>
    <td><input name="Input" text="" style="width:100px" </td>    // выдится число 100


ОнЧенж к примеру первой строки, в <td>888<td> ---> <td>100</td> = <td><input name="Input" text="" style="width:100px" </td>


Может быть стоит поставить каждому оптиону Value ? и через него уже работать?

Автор: DEER 22.3.2006, 15:37
конечно!!!
просто, я не знал какое именно значение тебе нужно smile

Код

<td><select name="select" style="width:250px" onChange="mmm(this)">    
      
      <option value="100">3квт</option>                                  //значение строки - 100    
      <option value="200">5квт</option>                                  //значение строки - 200    
      <option value="300">10квт</option>                                //значение строки - 300    
      <option value="400">25квт</option>                                //значение строки - 400    
      <option value="500">50квт</option>                                //значение строки - 500    
      <option value="600">свыше 50квт</option>                     //значение строки - 600    
      <option value="700">2 квт</option>                                 //значение строки - 700    
    </select></td>    
    <td id='mytd'>888</td>    
    <td></td>    
    <td></td>    
    <td><input name="Input" type="text" id="inpt" style="width:100px" </td>    // выдится число 100


Код

function mmm(sel)    
 {    
    var val = sel.options[this.selectedIndex].value; //выбрали какую то строку    
    var input_val = document.getElementById("inpt").value;  //получили то что в инпуте    
    var new_val = eval(val*input_val);  // полученные значения перемножим    
    document.getElementById("mytd").value = new_value; //запишем обратно в ячейку    
 }

Добавлено @ 15:39
только нужно поставить условие, есть ли что нибудь в этом инпуте, а то может вылететь ошибка smile

Автор: magrussia 22.3.2006, 15:58
Код

 <script type="text/JavaScript">  
function mmm(sel)
 {
    var val = sel.options[this.selectedIndex].value;
    var old_val = document.getElementById("mytd").value; 
    var new_val = eval()val*new_val;
    document.getElementById("mytd").value = new_value;
 }
 </script>


Тут надо как то сиправить эту функцию, то есть убрать перемножение ..


Код

<td><select name="select" style="width:250px" onChange="mmm(this)">  
     
      <option value="3000">Переменный ток 220/2/50 Гц до 3 кВт</option>
      <option value="4200">Переменный ток 380/3/50 Гц до 5 кВт</option>
      <option value="6600">Переменный ток 380/3/50 Гц до 10 кВт</option>
      <option value="9600">Переменный ток 380/3/50 Гц до 25 кВт</option>
      <option value="12300">Переменный ток 380/3/50 Гц до 50 кВт</option>
      <option value="15000">Переменный ток 380/3/50 Гц свыше 50 кВт</option>
      <option value="1000">Переменный ток 220/2/50 Гц до 1 кВт</option>
    </select></td>
    <td id='mytd'>888</td> 
    <td></td>
    <td></td>
    <td><input name="Input" type="text" id="inpt" style="width:100px" </td> 


Не выводит она :/

Автор: magrussia 22.3.2006, 16:28
Нуждаюсь в помощи! smile

Автор: DEER 22.3.2006, 16:33
Цитата(magrussia @ 22.3.2006, 15:58)
Код

 <script type="text/JavaScript">  
function mmm(sel)
 {
    var val = sel.options[this.selectedIndex].value;
    var old_val = document.getElementById("mytd").value; 
    var new_val = eval()val*new_val;
    document.getElementById("mytd").value = new_value;
 }
 </script>


Тут надо как то сиправить эту функцию, то есть убрать перемножение ..


Код

<td><select name="select" style="width:250px" onChange="mmm(this)">  
     
      <option value="3000">Переменный ток 220/2/50 Гц до 3 кВт</option>
      <option value="4200">Переменный ток 380/3/50 Гц до 5 кВт</option>
      <option value="6600">Переменный ток 380/3/50 Гц до 10 кВт</option>
      <option value="9600">Переменный ток 380/3/50 Гц до 25 кВт</option>
      <option value="12300">Переменный ток 380/3/50 Гц до 50 кВт</option>
      <option value="15000">Переменный ток 380/3/50 Гц свыше 50 кВт</option>
      <option value="1000">Переменный ток 220/2/50 Гц до 1 кВт</option>
    </select></td>
    <td id='mytd'>888</td> 
    <td></td>
    <td></td>
    <td><input name="Input" type="text" id="inpt" style="width:100px" </td> 


Не выводит она :/

Это не будет работать,
в строке 6 кода javascript опечатка, я её усправил в своём втором посте смотри внимательнее...
ах, да!!!!!!
у тдже нет валуя!!!!!! smile
И в
Код

<script type="text/JavaScript">    
function mmm(sel)    
 {    
    var val = sel.options[this.selectedIndex].value;    
    var old_val = document.getElementById("mytd").value;    
    var new_val = eval()val*new_val;    
    document.getElementById("mytd").value = new_value;    
 }    
 </script>

убери type="text/JavaScript"....
Код

<script>
function mmm(sel)      
 {      
    var val = sel.options[this.selectedIndex].value; //выбрали какую то строку      
    var input_val = document.getElementById("inpt").value;  //получили то что в инпуте      
    var new_val = eval(val*input_val);  // полученные значения перемножим      
    document.getElementById("mytd").innerHTML = new_value; //запишем обратно в ячейку      
 }
<script>

Функция без умножения:
Код

<script>
function mmm(sel)      
 {      
    var val = sel.options[this.selectedIndex].value; //выбрали какую то строку      
    document.getElementById("inpt").value = val;
    document.getElementById("mytd").innerHTML = val;
 }
<script>


Автор: magrussia 22.3.2006, 17:46
Код

<script>
function mmm(sel)      
 {      
    var val = sel.options[this.selectedIndex].value; //выбрали какую то строку      
    document.getElementById("inpt").value = val;
    document.getElementById("mytd").innerHTML = val;
 }
<script>

IE пишет ошибку на строке : var val = sel.options[this.selectedIndex].value; smile , подскажите

Автор: magrussia 22.3.2006, 22:06
ну ткните носом smile smile

Автор: magrussia 24.3.2006, 13:23
all right smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)