Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.07.2011, 14:36
Аспирант
Отправить личное сообщение для MaxD Посмотреть профиль Найти все сообщения от MaxD
 
Регистрация: 18.07.2011
Сообщений: 40

Как заменить заменить поле в форме и отсортировать строки <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, равный этому значению, а другие скрыть!

Последний раз редактировалось MaxD, 18.07.2011 в 15:23.
Ответить с цитированием
  #2 (permalink)  
Старый 18.07.2011, 14:57
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от MaxD
1. Как сделать чтобы при выборе строки "Другая" в поле "Страна" появлялось обычное поле для ввода текста и у него был атрибут "name" = "country"
Как вариант сразу это поле спрятать... И по надобности его показывать/прятать...

Сообщение от MaxD
2. Когда выбираешь страну, мне нужно получить его value и в зависимости от этого значения, нужно оставить строки <option> в поле "Регион" с id, равный этому значению, а другие скрыть!
И что в этом списке тебе неподвластно?
Ответить с цитированием
  #3 (permalink)  
Старый 18.07.2011, 15:00
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

выложи сюда не фарш, а HTML с отработавшим php

тогда уже можно будет говорить о чем-либо
Ответить с цитированием
  #4 (permalink)  
Старый 18.07.2011, 15:20
Аспирант
Отправить личное сообщение для MaxD Посмотреть профиль Найти все сообщения от MaxD
 
Регистрация: 18.07.2011
Сообщений: 40

Написал вот такой код, для решения первой проблемы, но он почему-то не работает?!
$('#country').change(
        function(){
            if($(this).val() == 0){
            $('#country').hide();
            $('#t').show().attr({'name':'country'});
            }
            });

А точнее сказать поле input просто появляется на своем месте, а не на месте select!

Последний раз редактировалось MaxD, 18.07.2011 в 15:24.
Ответить с цитированием
  #5 (permalink)  
Старый 18.07.2011, 16:43
Аспирант
Отправить личное сообщение для MaxD Посмотреть профиль Найти все сообщения от MaxD
 
Регистрация: 18.07.2011
Сообщений: 40

С первой проблемой разобрался, но вот со второй по прежнему труности!
Вот такой код на данный момент, скажите что делаю не верно!?
// Замена селекта на инпут
$('#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();
                
            }
});

Последний раз редактировалось MaxD, 18.07.2011 в 16:59.
Ответить с цитированием
  #6 (permalink)  
Старый 18.07.2011, 17:51
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

оно?

<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>
Ответить с цитированием
  #7 (permalink)  
Старый 18.07.2011, 18:10
Аспирант
Отправить личное сообщение для MaxD Посмотреть профиль Найти все сообщения от MaxD
 
Регистрация: 18.07.2011
Сообщений: 40

Не это не то!)
Мне нужно чтобы в зависимости от 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>
Ответить с цитированием
  #8 (permalink)  
Старый 18.07.2011, 18:11
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

вот прочитай эту статью !

всё станет предельно ясно
Ответить с цитированием
  #9 (permalink)  
Старый 18.07.2011, 18:16
Аспирант
Отправить личное сообщение для MaxD Посмотреть профиль Найти все сообщения от MaxD
 
Регистрация: 18.07.2011
Сообщений: 40

Я прочитал, там все объяснено на премитивном уровне, это я и сам знаю! А вот как это все совместить с переменными, не создавая никаких масивов с заранее известными строками, я так запарюсь сидеть записывать каждый регион!

И тем более я уверен в том, что все можно сделать гораздо проще и эфективнее!

Последний раз редактировалось MaxD, 18.07.2011 в 18:38.
Ответить с цитированием
  #10 (permalink)  
Старый 18.07.2011, 18:30
Аспирант
Отправить личное сообщение для MaxD Посмотреть профиль Найти все сообщения от MaxD
 
Регистрация: 18.07.2011
Сообщений: 40

Еще раз прочитал и все равно остаюсь на той же точке "Абсолютного непонимания решения моего вопроса"!

Последний раз редактировалось MaxD, 18.07.2011 в 18:37.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отделить нажатие кл. Enter в поле INPUT от нажатия Enter в выпадающем списке? Маэстро Events/DOM/Window 7 18.07.2012 09:11
Числа скаладываются как строки rasta Общие вопросы Javascript 4 07.04.2011 16:59
Как обрезать строку и добавить символы в середине, в зависимости от длинны строки andreyua Firefox/Mozilla 12 10.12.2010 15:44
Как вложено прятать строки таблицы? Бобр Общие вопросы Javascript 10 01.08.2010 13:57