Сделать вводимые текстовые поля изменяемыми и выбираемыми (переключается с флажком) - PullRequest
1 голос
/ 17 января 2012

Пожалуйста, посмотрите мой текущий фрагмент HTML, как показано ниже. Я пытаюсь сделать html поля ввода изменяемыми и выбираемыми. Так что я могу изменить значение цвета в поле ввода текста, которое переключается с соответствующим флажком. При нажатии кнопки «Отправить» отправляется только информация выбранного цвета. Мой текущий HTML-код отображает содержимое правильно, но он будет предоставлять информацию двух цветов. Несмотря на то, что установлен только один флажок.

<form id="myForm">         
  <input type="checkbox" name="color1" value="blue_check" />  
  Color1: <input type="text" name="blue" value="120" /></br>  
  <input type="checkbox" name="color2" value="red_check" /> 
  Color2: <input type="text" name="red" value="160" /></br>   
  <input type="submit" value="OK" />    
</form>

или нажмите: http://jsfiddle.net/4xDFK/56/

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 17 января 2012

Вы можете удалить элементы при отправке, если соответствующий флажок не установлен.

как запретить отправке формы некоторые поля, которые мы не хотим отправлять

1 голос
/ 17 января 2012

С помощью jQuery:

$(document).ready(function() {
    $('#myForm :checkbox').each(function() {
        $(this).next("input").attr('disabled',!$(this).is(':checked'));
    });
});

$('#myForm :checkbox').change(function() {
    $(this).next("input").attr('disabled',!$(this).is(':checked'));
});

Поскольку вы не упомянули об использовании JavaScript или JS-фреймворка, здесь предлагается решить эту проблему с помощью чистой HTML-формы и на стороне сервера.оценка:

  1. Присвойте флажкам название, например "check_blue" + "check_red"
  2. На стороне сервера обрабатывайте цвет, только если установлен соответствующий флажок

Если вы хотите только отправить или разрешить заполнение входных данных в соответствии с состоянием флажка, вы должны использовать JavaScript (и, вероятно, должны были упомянуть об этом в своем вопросе или хотя бы в качестве тега).

0 голосов
/ 17 января 2012

Все входные значения передаются при нажатии кнопки «Отправить». Так что вам нужно сделать это на стороне сервера. Присвойте имена флажкам и проверьте их значения, Google для «обработки флажков в XXXX», где XXXX - ваш язык на стороне сервера.

<h1> Colors Information </h1>
<form id="myForm">
  <input type="checkbox" name="choice1" value="choice1"/>
  Color1: <input type="text" name="blue" value="120" /></br>
  <input type="checkbox" name="choice2" value="choice2"/>
  Color2: <input type="text" name="red" value="160" /></br>    
  <input type="submit" value="OK" />
</form>

Затем вы можете проверить, какие флажки отмечены, и, соответственно, посмотреть, следует ли учитывать соответствующие поля ввода текста.

...