Появление скрытых полей, при вводе определенного значения в input
Добрый день. Как сделать так, чтоб, если в input ввести значение >=16, то должны появиться скрытые style="display:none" обязательные поля checkbox и select. Догадываюсь, что просто, но не получается.
|
Все зависит от контекста задачи, например, если речь о форме отправляемой на сервер, то она уже может иметь эти поля (если и список скрытый, то это странно), но не иметь имен. Поля без имени браузер на сервер не передает. Имена у них добавляются/удаляются по условию значения какого-то поля.
|
Делала с селектом, вот код, нужно теперь с input, при введенном значение >=16, должны появиться скрытые style="display:none" обязательные поля checkbox и select, помогите, если можете.
<td><font color="000066" style="font-size:14px" style="font-family:Arial">Необходимость:<font color="red">*</font></td> <td><select name="select" id="select" required="required" required aria-required="true" style="width:250px; color:#000066; font-size:12px; font-family:arial;"> <OPTION></OPTION> <OPTION VALUE="1">Нет</OPTION> <OPTION VALUE="2">Есть</OPTION></select> </td> </tr> <td><p><font id="P" style="display:none">Мощность<font color="red">*</font></td> <td><input type="text" size="37" name="P_br" style="display:none" id="P_br"></p></td> </tr> <td><p><font id="N" style="display:none">Напряжение:<font color="red">*</font></td> <td><input type="text" size="37" name="U1" style="display:none" id="U1"></p></td> </tr> <script language="JavaScript"> $("#select").on('change', function(){ if($(this).val() == 2){ $("#P, #N, #P_br, #U1").show(); } else { $("#P, #N, #P_br, #U1").hide(); } }) </script> |
Вы либо не поняли о чем написано выше, либо ... Какова роль скрытых полей? Даже будучи скрытыми они такие же полноценные элементы формы вашей, а значит при любых условиях будут отправлены на сервер.
|
Роль скрытых полей- просто скрытые поля. Пусть отправляются на сервер, без проверки. Это не так важно для моей задачи. Можете помочь?
|
Маразм какой-то, какой тогда смыл вообще их показывать. Ну коли нравится это, то можно, но почему в коде обрабатывается select, а речь идет о "нужно теперь с input, при введенном значение >=16"? Что это за поле и где оно в форме? Да и по ходу тут не просто поля скрывать надо, а метки к ним, то есть блоки.
|
По такому принципу: в css определите класс, который скрывает блок, в котом размещены скрываемые поля с метками (а для этого есть label, а о теге font надо забыть). И вообще не используйте таблицу как элемент разметки, у нее иное предназначение, лучше поищите в сети как оформляются формы. Для примера:
.hidden {
display: none;
}
<form> <input name="as" /> <div id="box"> <input name="i1" value="1"/> <input name="i1" value="2"/> </div> </form>
$('input[name=as]').on('input', function() {
this.value = this.value.replace(/\D/,'');
$('#box').toggleClass('hidden', this.value >= 16)
});
|
Что-то Ваш пример не работает. Скрытые поля изначально видны. Если в строку "as" записать число >16, ничего не меняется. Мне нужно, чтоб при записи в строку as числа >=16, появились поля checkbox и select.
А выше код был просто для примера. |
Цитата:
|
Цитата:
<html>
<head>
<meta charset="utf-8">
<style>
.hidden {
display: none;
}
</style>
<!-- подключение самой библиотеки -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<!-- код -->
<script>
$(function() {
$('input[name=as]').on('input', function() {
this.value = this.value.replace(/\D/,'');
$('#box').toggleClass('hidden', !(this.value >= 16))
});
});
</script>
</head>
<body>
<form>
<input name="as" />
<div id="box" class="hidden">
<input name="i1" value="1"/>
<input name="i2" value="2"/>
<p>И все что угодно тут будет скрываться/отображаться по условию</p>
</div>
</form>
</body>
</html>
|
| Часовой пояс GMT +3, время: 14:21. |