|
Как заменить заменить поле в форме и отсортировать строки <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, время: 19:53. |
|