Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   подточить форму (https://javascript.ru/forum/dom-window/12090-podtochit-formu.html)

bananapapa 29.09.2010 23:59

подточить форму
 
Здравствуйте, уважаемые!
Дело в том, что я использую следующую форму в добавление объекта недвижимости:
<html>
<body>

    <script language="javascript" type="text/javascript">
		function change(nameid,divname){
			sel = document.getElementById(nameid);
			
			for(i=1;i<=sel.length;i++){
				if(i==sel.selectedIndex+1){
					document.getElementById(divname+i).style.display = "block";
				}else{
					document.getElementById(divname+i).style.display = "none";
				}
			}
		}
    </script>
	
	<select id="idsel" onchange="change('idsel','divname');">
		<option selected id='idsel' value='v1'> Квартира </option>
		<option id='idsel' value='v1'> Дача </option>
		<option id='idsel' value='v1'> Гараж </option>
	</select>
	<div id='divname1' style="display: block">
		Форма добавления продажи квартиры
	</div>
	<div id='divname2' style="display: none">
		Форма добавления продажи дачи
	</div>
	<div id='divname3' style="display: none">
		Форма добавления продажи гаража
	</div>
</body>
</html>


Но вот проблема... Так как одни и те же поля необходимо вписывать в коде каждого раздела, при добавлении объекта через web у меня эти формы остаются пустыми... (надеюсь поняли =) )

Подскажите, пожалуйста, код JS чтобы при выборе категории страница перезагружалась и показывала нужную форму? (думаю это поможет)

Sweet 30.09.2010 00:18

Цитата:

Сообщение от bananapapa
надеюсь поняли

Я - не понял.
id - вещь уникальная. У каждого элемента должен быть свой уникальный id!
Если нужно, чтобы страница перезагружалась, то JS использовать не нужно.

Sweet 30.09.2010 00:40

Кстати, необходимость в id частенько отпадает, когда используешь this:)
<html>
<body>
<script type="text/javascript">
function change(sel, divname){
  for(i=1;i<=sel.length;i++){
    if(i==sel.selectedIndex+1){
      document.getElementById(divname+i).style.display = "block";
    }else{
      document.getElementById(divname+i).style.display = "none";
    }
  }
}
</script>
	
<select onchange="change(this, 'divname');">
  <option selected> Квартира </option>
  <option> Дача </option>
  <option> Гараж </option>
</select>
<div id='divname1' style="display: block">Форма добавления продажи квартиры</div>
<div id='divname2' style="display: none">Форма добавления продажи дачи</div>
<div id='divname3' style="display: none">Форма добавления продажи гаража</div>
</body>
</html>

bananapapa 30.09.2010 03:25

Цитата:

Сообщение от Sweet (Сообщение 72426)
Кстати, необходимость в id частенько отпадает, когда используешь this:)

спасибо! то что нужно! помогло!

bananapapa 30.09.2010 03:52

а как вот так?
 
а как к форме
<html>
<body>
<script type="text/javascript">
function change(sel, divname){
  for(i=1;i<=sel.length;i++){
    if(i==sel.selectedIndex+1){
      document.getElementById(divname+i).style.display = "block";
    }else{
      document.getElementById(divname+i).style.display = "none";
    }
  }
}
</script>
	
<select onchange="change(this, 'divname');">
  <option selected> Квартира </option>
  <option> Дача </option>
  <option> Гараж </option>
</select>
<div id='divname1' style="display: block">Форма добавления продажи квартиры</div>
<div id='divname2' style="display: none">Форма добавления продажи дачи</div>
<div id='divname3' style="display: none">Форма добавления продажи гаража</div>
</body>
</html>


добавить функцию чтобы также добавлялось в базу данных, то есть, например при выборе divname1 type = 1, а divname2 - type = 2 и т.д.?


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