|
|
|
| имеются три селекта: страна>регион>город
при выборе страны подгружается список регионов, при выборе региона подгружается список городов, а при выборе города нужно делать переход на страницу index.php?country=1®ion=2&city=3
тоесть те значения что были выбраны в трёх селектах, по ним нужно сделать переход на страницу.
вот код который я смог написать
<script type="text/javascript">
function georedirect(){
var get_city;
var get_region;
var get_country;
get_city=city.options[city.selectedIndex].value;
get_region=region.options[region.selectedIndex].value;
get_country=country.options[country.selectedIndex].value;
self.location='?country='+get_country+'®ion='+get_region+'&city='+get_city;
}
</script>
|
список стран
<select name="country">
<option value="0">выбрать страну</option>
...
</select>
|
список регионов
<select name="region">
<option value="0">выбрать регион</option>
...
</select>
|
список городов
<select name="city" onChange="georedirect();">
<option value="0">выбрать город</option>
...
</select>
|
в IE и опере переход происходит, но вот через Mozilla Firefox 3 перход не производится, ни какой реакции нет, как сделать чтобы тоже срабатывало?
да и ещё, каждый селект имеет option со значением 0, как сделать чтобы при выборе этого элемента, в каком либо селекте, переход не производился? | |
|
|
|
|
|
|
|
для: web777
(26.09.2008 в 02:50)
| |
<html>
<head>
</head>
<body>
<select name="country" onchange="document.getElementById('region').disabled=(this.value == 0?true:false)" id="country">
<option value="0">выбрать страну</option>
<option value="1">Россия</option>
<option value="2">Америка</option>
</select>
<select name="region" disabled="disabled" onchange="document.getElementById('city').disabled=(this.value == 0?true:false)" id="region">
<option value="0">выбрать регион</option>
<option value="1">Регион 1</option>
<option value="2">Регион 2</option>
</select>
<select name="city" disabled="disabled" id="city" onChange="georedirect();">
<option value="0">выбрать город</option>
<option value="1">Москва</option>
<option value="2">Питер</option>
</select>
</body>
<script type="text/javascript">
function georedirect(){
var get_city;
var get_region;
var get_country;
get_city=document.getElementById('city').options[city.selectedIndex].value;
get_region=document.getElementById('region').options[region.selectedIndex].value;
get_country=document.getElementById('country').options[country.selectedIndex].value;
document.location.href='?country='+get_country+'®ion='+get_region+'&city='+get_city;
}
</script>
</html>
|
| |
|
|
|
|
|
|
|
для: ONYX
(26.09.2008 в 09:15)
| | спасибо большое, код вами представлен работает как и требовалось, единственное я упустил при описании, у меня уже присутствовали id= для каждого селекта, вот как они у меня сейчас
<select name="country" id="country_id" onLoad="this.fous = false;" onChange="GeoSelectLoading(this, document.getElementById('city_id'), 'регион не выбран'); GeoSelectRegion(this, 'getregion', document.getElementById('region_id'))">
<select name="region" id="region_id" disabled="disabled" class="disabled" onChange="GeoSelectRegion(this, 'getcity', getElementById('city_id'));">
<select name="city" id="city_id" disabled="disabled" class="disabled" onChange="georedirect();">
|
тут видно что уже у каждого селекта имеются id="country_id", id="region_id", id="city_id" они нужны для подгрузки списка городов, регионов, из-за этого пришлось в вашем коде немного подправить, заменив country, region, city на country_id, region_id, city_id
function georedirect(){
var get_city;
var get_region;
var get_country;
get_city=document.getElementById('city_id').options[city_id.selectedIndex].value;
get_region=document.getElementById('region_id').options[region_id.selectedIndex].value;
get_country=document.getElementById('country_id').options[country_id.selectedIndex].value;
document.location.href='?country='+get_country+'®ion='+get_region+'&city='+get_city;
}
|
при запуске скрипта, переход не срабатывает, IE сообщяет что "Требуется объект"
видимо получается путаница на id= происходят два события, поэтому наверное происходит конфликт, можно както решить эту задачу? | |
|
|
|
|
|
|
|
для: web777
(26.09.2008 в 11:46)
| | name="country" id="country_id" => name="country_id" id="country_id"
onLoad="this.fous = false;" => onLoad="this.foCus = false;" | |
|
|
|
|
|
|
|
для: elenaki
(26.09.2008 в 11:50)
| | сейчас изменил как вы предложили, получилось так
<select name="country_id" onLoad="this.focus = false;" onChange="GeoSelectLoading(this, document.getElementById('city_id'), 'регион не выбран'); GeoSelectRegion(this, 'getregion', document.getElementById('region_id'))">
|
в IE теперь всё как и должно, а вот в опере и Firefox3 редирект не происходит
упс, ивиняюсь, пропустил написать id="country_id"
теперь всё работает, вот только заметил, при выборе допустим региона или страны со значение 0 , то переход производится, но оно и понятно, т.к. у меня нет сейчас проверки, я незнаю как его сделать его по скольку у меня уже применяется onChange, хотя наверное это нужно уже делать внутри функции georedirect() сейчас попробую если получится | |
|
|
|