2016-04-11 5 views
1

Я использую ниже bootstrap в качестве выпадающего меню, которое затем с помощью связанной функции jQuery отображает выбранное поле в inputtype="text". Но пользователи все равно могут писать свои собственные в поле ввода, чего я бы хотел избежать. Я попытался использовать атрибут disabled в поле ввода, но если я это сделаю, плагин jQuery Validate просто проигнорирует его и предоставит разрешение, даже если оно пустое.jQuery Подтвердить и заблокировать поле ввода

Возможно ли «деактивировать» поле ввода с помощью type="text" без использования атрибута disabled, чтобы я все еще мог использовать проверку jQuery.

<div class="form-group"> 
    <div class="input-group"> 
     <div class="input-group-btn"> 
       <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Choose<span class="caret"></span></button> 
       <ul class="dropdown-menu"> 
        <li><a href="#" id="a">1</a></li> 
        <li><a href="#" id="b">2</a></li> 
        <li><a href="#" id="c">3</a></li> 
        <li><a href="#" id="d">4</a></li> 
        <li role="separator" class="divider"></li> 
        <li><a href="#" id="e">5</a></li> 
       </ul> 
     </div> 
     <input type="text" id="abc" autocomplete="off" name="abc" placeholder="Select *" class="form-control" aria-label="..."> 
    </div> 
</div> 
+0

Итак, где же JavaScript? – Sparky

ответ

5

Там нет прямого решения ... если поле «отключено» с помощью атрибута disabled, плагин JQuery Validate всегда будет игнорировать его. (Логически, нет смысла проверять то, что пользователь не может редактировать.)

Однако есть обходное решение. Если вы используете атрибут readonly вместо disabled, он может быть проверен.

<input type="text" name="abc" readonly="readonly" /> 

DEMO: http://jsfiddle.net/85pu1oe5/

0

Независимо от того, как спосо этот вопрос - есть обходной путь, который довольно прост. Почему бы не использовать скрытое поле дополнительно к отключенному, которое игнорируется jquery.validate.js?

например.

<input type="text" name="name" class="form-control" value="<?php echo htmlentities($user['name']); ?>" disabled> 
<input type="hidden" name="name" class="form-control" value="<?php echo htmlentities($user['name']); ?>"> 

Хорошо работает для меня. То же самое касается

<select style="display:none;"><option value="sample">Sample</option></select> 

дисплей: нет; спрячет элемент, полностью (космос и все). Он по-прежнему включен, и, таким образом, его данные все еще отправляются. Попробуй.

Убедитесь, что игнорируется: «.ignore», добавляется в validate.js, поскольку он включает все скрытые поля.

Смежные вопросы