Javascript.RU

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

Спецу: Зависимые поля ввода
Есть форма регистрации, где помимо личных данных клиент вводит номер пасспорта/удостоверения личности. Клиент выбирает из списка пасспорт либо уд. личности (смотря какая из них имеется). Номер пасспорта состоит из 7 цифр, а удост. личности из 9. Следующее поле ввода предназначен для ввода номера пасспорта/удостоверения (смотря, что клиент выбрал из списка). Как сделать так, чтобы если клиент выбрал пасспорт то клиент мог ввести только 7 цифр, а удост. личности то 9. В противном случае, должна выскакивать ошибка. Алгоритм мне понятен, с реализацией проблеммы. Приведите или скиньте ссылки на примеры
Ответить с цитированием
  #2 (permalink)  
Старый 25.09.2011, 20:24
Профессор
Отправить личное сообщение для Александр х@к Посмотреть профиль Найти все сообщения от Александр х@к
 
Регистрация: 24.08.2011
Сообщений: 159

на многих сайтах есть, а код в исходнике
Ответить с цитированием
  #3 (permalink)  
Старый 25.09.2011, 20:24
Профессор
Отправить личное сообщение для Триви Посмотреть профиль Найти все сообщения от Триви
 
Регистрация: 23.04.2010
Сообщений: 354

Приблизительно так:

<style>
#udost, #udost_stat{
  display: none;
}
</style>

<input type="radio" name="doc_type" value="p" checked="checked"/> Паспорт
<input type="radio" name="doc_type" value="u"/> Уд. личности<br />
<input type="text" name="passport" id="passport" onkeyup="countDownchars(this.id, '7');" value="" maxlength=7> <span id="passport_stat">7</span>
<input type="text" name="udost" id="udost" onKeyUp="countDownchars(this.id, '9');" value="" maxlength=9> <span id="udost_stat">9</span>

<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<script type="text/javascript">
$('input[type=radio]').click(function(){
  if($(this).val()=='p') {
    $('#udost, #udost_stat').css('display', 'none');
    $('#passport, #passport_stat').css('display', 'inline');
  }
  if($(this).val()=='u') {
    $('#passport, #passport_stat').css('display', 'none');
    $('#udost, #udost_stat').css('display', 'inline');
  }
});

function countDownchars (element_id, maxchars) {
  $('#'+element_id).keyup(function (){
    number = $('#'+element_id).val().length;
    if(number <= maxchars){
      $('#'+element_id+'_stat').html(maxchars-number).css('color', '#000');
    }
    if(number == maxchars) {
      $('#'+element_id).attr({ maxlength: maxchars});
      $('#'+element_id+'_stat').css('color', '#f00');
    }
  });
}
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 25.09.2011, 20:32
Профессор
Отправить личное сообщение для Александр х@к Посмотреть профиль Найти все сообщения от Александр х@к
 
Регистрация: 24.08.2011
Сообщений: 159

а ещё поставь pattern здесь http://htmlbook.ru/html/input/pattern
чтоб вводить что-то определённое
Ответить с цитированием
  #5 (permalink)  
Старый 25.09.2011, 21:14
Профессор
Отправить личное сообщение для Триви Посмотреть профиль Найти все сообщения от Триви
 
Регистрация: 23.04.2010
Сообщений: 354

Сообщение от Александр х@к Посмотреть сообщение
а ещё поставь pattern здесь http://htmlbook.ru/html/input/pattern
чтоб вводить что-то определённое
Отличный кросс-браузерный способ!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение фокуса с одного поля ввода на другое ProniK Общие вопросы Javascript 3 27.12.2009 10:35
Календарь для поля ввода calendar_ru.js в углу экр vlad275 AJAX и COMET 0 11.12.2009 16:45
Как сделать связанные поля ввода diakon Элементы интерфейса 2 11.12.2009 16:17
Переход между окнами ввода при заполнении. Бушка Общие вопросы Javascript 4 25.03.2009 15:40
Проверка ввода логина и пароля Макс Элементы интерфейса 9 17.06.2008 18:42