|
Как заменить заменить поле в форме и отсортировать строки <option>?
Вот моя форма, для примера выкладываю только несколько полей!
<form action="<?=base_url();?>create/<?=$this->session->userdata('user_id')?>" method="post" >
<table cellpadding="4" cellpadding="2" align='center' style="margin-top: 10px; vertical-align: top;">
<tr>
<td>Страна:</td>
<td><select size='1' name='country' id='country'>
<option value='-1' selected>Выберите страну</option>
<option value='0'>Другая</option>
<?
foreach($country as $country_id)
{
echo "<option value='".$country_id['id']."'>".$country_id['country_n']."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>Регион:</td>
<td><select size='1' name='region' id='region'>
<option value='-1' selected>Выберите регион</option>
<option value='0'>Другой</option>
<?foreach($region as $region_id)
{
echo "<option id='".$region_id['country']."' value='".$region_id['id']."'>".$region_id['region_n']."</option>";
}
?>
</select></td>
</tr>
</table>
<input type="text" name="t" id="t" style="display: none;"/>
</form>
Меня интересует 1. Как сделать чтобы при выборе строки "Другая" в поле "Страна" появлялось обычное поле для ввода текста и у него был атрибут "name" = "country" 2. Когда выбираешь страну, мне нужно получить его value и в зависимости от этого значения, нужно оставить строки <option> в поле "Регион" с id, равный этому значению, а другие скрыть! |
Цитата:
Цитата:
|
выложи сюда не фарш, а HTML с отработавшим php
тогда уже можно будет говорить о чем-либо |
Написал вот такой код, для решения первой проблемы, но он почему-то не работает?!
$('#country').change(
function(){
if($(this).val() == 0){
$('#country').hide();
$('#t').show().attr({'name':'country'});
}
});
А точнее сказать поле input просто появляется на своем месте, а не на месте select! |
С первой проблемой разобрался, но вот со второй по прежнему труности!
Вот такой код на данный момент, скажите что делаю не верно!?
// Замена селекта на инпут
$('#country').change(
function(){
var val_c = $(this).val();
if(val_c == 0){
$('#country').hide().before($('#t'));
$('#t').show().attr({'name':'country'}).text('Название города');
}
// Сортировка элементов option
if (val_c > 0)
{
var opt_r = $('#region :option[value = '+val_c+']');
var opt = $('#region :option[value > 0]');
$(opt).hide();
$(opt_r).show();
}
});
|
оно?
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>
$(function() {
var form = $('[name="form"]'),
array = ['Челябинск', 'Севастополь'];
$('select', form).change(function() {
$('input', form).removeAttr('disabled').val(array[this.selectedIndex-1]);
});
});
</script>
<form name="form">
<select>
<option value="0">-- выберите --</option>
<option value="1">Россия</option>
<option value="2">Украина</option>
</select>
<input type="text" value="" disabled="" />
</form>
|
Не это не то!)
Мне нужно чтобы в зависимости от value выбранной страны, в поле <select name='region' id='region' оставались только те <option> у которых id равен value выбранной страны, а остальные <option> должны скрываться за исключением <option value='0'>Другой<option>! Вот к примеру как сделать чтобы при выборе Россия, в поле регион оставались только города с id = '1', а пре выборе Литва, только с id='2'? <tr> <td> <td> <select size="1" name="country" id="country"> <option value="-1" selected="">Выберите страну</option> <option value="0">Другая</option> <option value="1">Россия</option> <option value="2">Литва</option> </select> </td> </tr> <tr> <td>Регион:</td> <td> <select size="1" name="region" id="region"> <option value="-1" selected="">Выберите регион</option> <option value="0">Другой</option> <option id="2" value="2"></option> <option id="1" value="1">Калининград</option> <option id="2" value="3">Сувалкия</option> <option id="2" value="4">Жемайтия</option> <option id="1" value="5">Нижегородская </option> <option id="1" value="6">Воронежская</option> </select> </td> |
|
Я прочитал, там все объяснено на премитивном уровне, это я и сам знаю! А вот как это все совместить с переменными, не создавая никаких масивов с заранее известными строками, я так запарюсь сидеть записывать каждый регион!
И тем более я уверен в том, что все можно сделать гораздо проще и эфективнее! |
Еще раз прочитал и все равно остаюсь на той же точке "Абсолютного непонимания решения моего вопроса"!
|
| Часовой пояс GMT +3, время: 08:43. |
|