Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Не знаю как назвать.... (https://javascript.ru/forum/dom-window/17350-ne-znayu-kak-nazvat.html)

melnikdima 15.05.2011 19:19

Не знаю как назвать....
 
Написал код.

подскажите как его переделать чтобы можно было использовать не 1 форму f1 а много f1 f2 f3 f4 и т.д
и не одно choice а choice1 choice2 choice3

соответственно f1-choice1, f2-choice2, f3-choice3

проблема как правильно передавать f и choice в функцию
selectImage

и как правильно обращаться к переданным значениям.


Код:

<style type="text/css">

select.a{
background:url('');

  background-repeat: no-repeat;
  height:60px;
  width:120px;
}

option
{
  background-repeat: no-repeat;
  height:60px;
  width:90px;
}
option.a1{
  background-image: url('img/line_g.png');
}
option.a2 {
    background-image: url('img/C_g.png');
}
option.a3 {
    background-image: url('img/C_v.png');
}
</style>




<FORM name="f1"  action="#">
<SELECT name="choice" class="a" onChange="selectImage()">
<OPTION class="a1" VALUE="Less than 1 year.">
<OPTION class="a2" VALUE="1-5 years.">
<OPTION class="a3" VALUE="1-5 years.">
</SELECT>
</FORM>



<SCRIPT language="javascript">


function selectImage()
{

  document.f1.choice.style.backgroundImage = "url('"+imageSet[document.f1.choice.selectedIndex]+"')";
 
}


function Selector(images)
{

/* si: start index
** i: current index
** ei: end index
** cc: current count
*/
 si = 0;
 ci=0;
 cc=0;
 imageSet = new Array();
 ei = images.length;
 
for (i=1;i<ei;i++) {
if (images.charAt(i) == ' ' || images.charAt(i) == ',') {
imageSet[cc] = images.substring(si,i);

cc++;
si=i+1;  }
}

}

</SCRIPT>
<SCRIPT>

Selector("img/line_g.png img/C_g.png img/C_v.png ");

</SCRIPT>


walik 15.05.2011 20:05

selectImage(this);

Ну и саму функцию поменяйте соответственно.

ksa 16.05.2011 09:37

melnikdima, открой для себя идентификаторы элементов и начинай их применять...
Но в данной задаче пример от walik самое то.


Часовой пояс GMT +3, время: 02:22.