Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Порчему так работает а так нет?
 
 автор: vquery   (09.03.2007 в 04:17)   письмо автору
811 байт
 
 

Вот так работает


<script>
function gorod()  
{  
var t = document.fq.sel.options[document.fq.sel.selectedIndex].value; 
document.getElementById("gorod").value += t;  

</script>
<body>

<form method="post" name="fq" id="fq" action="test.php">
<select id="sel" onChange="gorod()"> 
<option>Города</option>
<option value='/?page=15'>Москва</option>
<option value='/?page=12'>Воркута</option> 
<option value='/?page=72'>Севостополь</option>
</select> </form>

<form method="post" name="f" id="f" action="test.php">
<input name="gorod" type="text" />

</form>


А если поместить форму в форму вот так то нет:


<script>
function gorod()  
{  
var t = document.fq.sel.options[document.fq.sel.selectedIndex].value; 
document.getElementById("gorod").value += t;  

</script>
<body>



<form method="post" name="f" id="f" action="test.php">
<input name="gorod" type="text" />

<form method="post" name="fq" id="fq" action="test.php">
<select id="sel" onChange="gorod()"> 
<option>Города</option>
<option value='/?page=15'>Москва</option>
<option value='/?page=12'>Воркута</option> 
<option value='/?page=72'>Севастополь</option>
</select> </form>
</form>


Если в js поменять на название главной формы то тоже нет


</head>
<script>
function gorod()  
{  
var t = document.f.sel.options[document.f.sel.selectedIndex].value; 
document.getElementById("gorod").value += t;  

</script>
<body>



<form method="post" name="f" id="f" action="test.php">
<input name="gorod" type="text" />

<select id="sel" onChange="gorod()"> 
<option>Города</option>
<option value='/?page=15'>Москва</option>
<option value='/?page=12'>Воркута</option> 
<option value='/?page=72'>Севастополь</option>
</select>
</form>
</body>
</html>


А если вынести <input name="gorod" type="text" /> за форму то все нормально


<script>
function gorod()  
{  
var t = document.f.sel.options[document.f.sel.selectedIndex].value; 
document.getElementById("gorod").value += t;  

</script>
<body>


<input name="gorod" type="text" />
<form method="post" name="f" id="f" action="test.php">


<select id="sel" onChange="gorod()"> 
<option>Города</option>
<option value='/?page=15'>Москва</option>
<option value='/?page=12'>Воркута</option> 
<option value='/?page=72'>Севастополь</option>
</select>
</form>
</body>
</html>


Почему так происходит? и как сделать чтобы нужные данные заносились в инпут находясь в одной форме?

Последний вариант для наглядности прикреплен

   
 
 автор: CNT   (09.03.2007 в 04:29)   письмо автору
 
   для: vquery   (09.03.2007 в 04:17)
 

Форма не должна включать в себя еще одну (две, три...) вложенную форму.
Исходите из этого соображения.

   
 
 автор: vquery   (10.03.2007 в 01:30)   письмо автору
 
   для: CNT   (09.03.2007 в 04:29)
 

Исходя из этого сооьбражения я написал вариант 3... но не работает почему то, так не должно быть по моему

   
 
 автор: CNT   (10.03.2007 в 02:28)   письмо автору
 
   для: vquery   (10.03.2007 в 01:30)
 

А всё потому, что не знаете, что "велик и могуч" не только русский язык, но также и язык аглицкий.

У вас что, фантазии совсем не хватает, чтобы двум разным объектам придумать два разных имени?

У вас функция именуется gorod и текстовое поле имеет имя gorod.
Как бедному браузеру разобраться - что именно имеете в виду вы каждый конкретный раз?

PS. В функции ещё сделайте проверку на (selectedIndex == 0) - при true чтобы она вам undefined в текстовое поле не засовывала.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования