Проблема в доступе к элементам формы - PullRequest
1 голос
/ 21 мая 2011

Следующий код отлично работает при манипулировании опциями в поле выбора.но это не работает, когда я помещаю это в форму.Пожалуйста помоги.Заранее спасибо.

<html>
<head>
<title>Catogery list</title>
<script type="text/javascript">
var catogeries=new Object();

catogeries['Accessories'] = 'Cosmetics/Perfumes|Jewelry|Handbags|Shoes|Watches';
catogeries['Entertainment/Media'] = 'Videos/Movies|Art|Photo|News|Television|Music';
catogeries['Automobile'] = 'Cars| Motorcycles| Tools & Supplies| Accessories';
catogeries['Books & Magazines'] = 'eBooks| Audio Books| Books| Magazines';
catogeries['Business & Career'] = 'Real Estate| Office| Productivity Tools| Employment| B-TO-B| Marketing';
catogeries['Apparel'] = 'Childrens| Mens| Womens';

function subcat(elem)
{
 var catarr;
 var subb=document.getElementById("subcat");
 subb.disabled=false; 
 subb.length=0;
 var cat=elem.options[elem.selectedIndex].text;

 if(catogeries[cat])
 {

  catarr=catogeries[cat].split('|');
  subb.options[0]=new Option('select subcat',' ');
  for(var i=0; i<catarr.length; i++)
  {
     subb.options[i+1]=new Option(catarr[i],catarr[i]);
  }

 }

}
</script>
</head>
<body>
<select id="cat" onChange="subcat(this,subcat)" style="width:200px;">
<option value="" selected="selected">Select Catogery</option>
<option value="">Accessories</option>
<option value="">Entertainment/Media</option>
<option value="">Automobile</option>
<option value="">Books & Magazines</option>
<option value="">Business & Career</option>
<option value="">Apparel</option>


</select>
</br>
</br>
<select id="subcat" style="width:200px; " disabled="true">

</select>
</body>
</html>

1 Ответ

0 голосов
/ 21 мая 2011

Кажется, это проблема конфликта имен.Вы назвали и функцию JavaScript, и функцию Select с тем же именем, например subcat .Назовите каждое из них однозначно, чтобы не было никакой двусмысленности в разрешении имен.например,

<html>
<head>
<title>Catogery list</title>
<script type="text/javascript">
var catogeries=new Object();

catogeries['Accessories'] = 'Cosmetics/Perfumes|Jewelry|Handbags|Shoes|Watches';
catogeries['Entertainment/Media'] = 'Videos/Movies|Art|Photo|News|Television|Music';
catogeries['Automobile'] = 'Cars| Motorcycles| Tools & Supplies| Accessories';
catogeries['Books & Magazines'] = 'eBooks| Audio Books| Books| Magazines';
catogeries['Business & Career'] = 'Real Estate| Office| Productivity Tools| Employment| B-TO-B| Marketing';
catogeries['Apparel'] = 'Childrens| Mens| Womens';

function GetSubCategeries(elem)
{

 var catarr;
 var subb=document.getElementById("subcat");

 subb.disabled=false; 
 subb.length=0;
 var cat=elem.options[elem.selectedIndex].text;

 if(catogeries[cat])
 {

  catarr=catogeries[cat].split('|');
  subb.options[0]=new Option('select subcat',' ');
  for(var i=0; i<catarr.length; i++)
  {
     subb.options[i+1]=new Option(catarr[i],catarr[i]);
  }

 }

}
</script>
</head>
<body>
<form>
<select id="cat" onChange="GetSubCategeries(this,subcat)" style="width:200px;">
<option value="" selected="selected">Select Catogery</option>
<option value="">Accessories</option>
<option value="">Entertainment/Media</option>
<option value="">Automobile</option>
<option value="">Books & Magazines</option>
<option value="">Business & Career</option>
<option value="">Apparel</option>


</select>
</br>
</br>
<select id="subcat" style="width:200px; " disabled="true">

</select>
</form>
</body>
</html>

Обратите внимание, что я включил выборки в элемент Form и переименовал функцию JavaScript в GetSubCategories () .

...