2012-03-08 4 views
0

Вы можете видеть в прикрепленной бумаге, что мне нужно для преобразования в веб-форму. Я хочу, чтобы он показывал флажки и отключал поля ввода, если пользователь не проверит флажок рядом с ним. Я видел способы сделать это с одним или двумя элементами, но я хочу сделать это примерно с 20-30 парами проверки/ввода и не хочу повторять один и тот же код, который много раз. Я просто недостаточно опытен, чтобы понять это самостоятельно. Кто-нибудь знает где-нибудь, что объясняет, как это сделать? Благодаря!Показать поле ввода при проверке

P.S. В конце концов эти данные будут отправлены через электронную почту с PHP.

enter image description here

+0

С этого ISN Динамика, зачем беспокоиться об использовании JavaScript или jQuery? Просто используйте IDE для создания формы. – j08691

ответ

1

в вашем HTML:

//this will be the structure of each checkbox and input element. 
<input type="checkbox" value="Public Relations" name="skills" /><input type="text" class="hidden"/> Public Relations <br/> 

в вашем CSS:

.hidden{ 
    display:none; 
} 
.shown{ 
    display:block; 
} 

в вашем JQuery:

$('input[type=checkbox]').on('click', function() { 
    // our variable is defined as, "this.checked" - our value to test, first param "shown" returns if true, second param "hidden" returns if false 
    var inputDisplay = this.checked ? 'shown' : 'hidden'; 
    //from here, we just need to find our next input in the DOM. 
    // it will always be the next element based on our HTML structure 
    //change the 'display' by using our inputDisplay variable as defined above 
    $(this).next('input').attr('class', inputDisplay); 
}); 

Весело.

+0

Удивительный, спасибо! ... Ошибка пары: отсутствует '.' перед' attr', а также unneeded '}' после 'inputDisplay' ... поэтому строка должна быть' $ (this) .next ('input') .attr ('class', inputDisplay); '... У меня пока нет прав на редактирование. Примечание для администратора: он сказал, что мое редактирование также недостаточно продолжительное, но все, что нужно было изменить, заключалось в добавлении' .' и удаление '}' ... не может помочь, необходимые изменения были настолько малы ... спасибо! – ansarob

+0

Изменения, внесенные для отражения выявленных вами проблем, извиняйтесь. Кроме того, если вы не хотите сталкиваться с проблемами редактирования, убедитесь, что вы редактируете BODY и включаете что-то вроде ** EDIT 1 ** Добавлено missing \. \ И удалено с ошибкой \} \ - Мне нравится избегать моих изменений. – Ohgodwhy

3

Я не думаю, что это хорошая идея.

Подумайте о пользователях. Сначала им нужно щелкнуть, чтобы ввести значение. Поэтому им всегда нужно менять руку от мыши к клавиатуре. Это не очень удобно.

Почему бы просто не дать текстовые поля? При отправке по электронной почте вы можете просто оставить пустые значения.

+0

Это имеет большой смысл. Недопустимая форма для бумаги - зачем нужно поле для заполнения? Пусть заполненный номер означает проверку, а пустое значение не означает никакой проверки. Готово. Если вам нужно * значение проверки для хранения в базе данных или что-то подобное, обработайте его на сервере. Не заставляйте меня проверять коробку, поэтому мне разрешено вводить число. –

+0

Знаете, это имеет смысл. Наверное, я просто повесил трубку на конвертацию бумаги именно так. Иногда вы чуть-чуть думали о вещах :) – ansarob

+0

Еще лучше будут переключатели. –