Отключить / включить ввод с помощью jQuery?



$input.disabled = true;


или



$input.disabled = "disabled";


что является стандартным способом? И, наоборот,как включить отключенный вход?

1162   15  

15 ответов:

jQuery 1.6+

изменить disabled свойство вы должны использовать .prop()

просто ради новых конвенций & & делая его адаптируемым идти вперед (если вещи не изменятся резко с ECMA6(????):

$(document).on('event_name', '#your_id', function() {
    $(this).removeAttr('disabled');
});

и

$(document).off('event_name', '#your_id', function() {
    $(this).attr('disabled','disabled');   
});
    // Disable #x
    $( "#x" ).prop( "disabled", true );
    // Enable #x
    $( "#x" ).prop( "disabled", false );

иногда вам нужно отключить / включить элемент формы, такой как input или textarea. Jquery поможет вам легко сделать это с помощью установки атрибута disabled в "disabled". Например:

  //To disable 
  $('.someElement').attr('disabled', 'disabled');

чтобы включить отключенный элемент, вам нужно удалить атрибут "disabled" из этого элемента или очистить его строку. Например:

//To enable 
$('.someElement').removeAttr('disabled');

// OR you can set attr to "" 
$('.someElement').attr('disabled', '');

см :http://garmoncheg.blogspot.fr/2011/07/how-to-disableenable-element-with.html

$("input")[0].disabled = true;

или

$("input")[0].disabled = false;

вы можете поместить это где-то глобальный в вашем коде:

$.prototype.enable = function () {
    $.each(this, function (index, el) {
        $(el).removeAttr('disabled');
    });
}

$.prototype.disable = function () {
    $.each(this, function (index, el) {
        $(el).attr('disabled', 'disabled');
    });
}

и тогда вы можете писать такие вещи, как:

$(".myInputs").enable();
$("#otherInput").disable();

Если вы просто хотите инвертировать текущее состояние (например, поведение кнопки переключения):

$("input").prop('disabled', ! $("input").prop('disabled') );

обновление на 2018 год:

теперь нет необходимости в jQuery, и это было некоторое время с тех пор document.querySelector или document.querySelectorAll (для нескольких элементов) делают почти точно такую же работу, как$, плюс более явныеgetElementById,getElementsByClassName,getElementsByTagName

отключение одного поля класса "input-checkbox"

document.querySelector('.input-checkbox').disabled = true;

или несколько элементов

document.querySelectorAll('.input-checkbox').forEach(el => el.disabled = true);

вы можете использовать метод jQuery prop() для отключения или включения элемента формы или управления динамически с помощью jQuery. Метод prop () требует jQuery 1.6 и выше.

пример:

<script type="text/javascript">
        $(document).ready(function(){
            $('form input[type="submit"]').prop("disabled", true);
            $(".agree").click(function(){
                if($(this).prop("checked") == true){
                    $('form input[type="submit"]').prop("disabled", false);
                }
                else if($(this).prop("checked") == false){
                    $('form input[type="submit"]').prop("disabled", true);
                }
            });
        });
    </script>

есть несколько способов их использования вы можете включить / отключить любой элемент :

подход 1

$("#txtName").attr("disabled", true);

подход 2

$("#txtName").attr("disabled", "disabled");

если вы используете jQuery 1.7 или более поздней версии, то используйте prop (), а не attr ().

$("#txtName").prop("disabled", "disabled");

если вы хотите включить любой элемент, то вам просто нужно сделать противоположное тому, что вы сделали, чтобы отключить его. Однако библиотека jQuery предоставляет еще один способ для удаления любого атрибута.

подход 1

$("#txtName").attr("disabled", false);

подход 2

$("#txtName").attr("disabled", "");

подход 3

$("#txtName").removeAttr("disabled");

опять же, если вы используете jQuery 1.7 или более высокую версию, то используйте prop (), а не attr(). Вот и все. Вот как вы включаете или отключаете любой элемент с помощью jQuery.

отключить:

$('input').attr('readonly', true); // Disable it.
$('input').addClass('text-muted'); // Gray it out with bootstrap.

включить:

$('input').attr('readonly', false); // Enable it.
$('input').removeClass('text-muted'); // Back to normal color with bootstrap.

я использовал @ gnarf ответ и добавил его как функцию

   $.fn.disabled = function (isDisabled) {
     if (isDisabled) {
       this.attr('disabled', 'disabled');
     } else {
       this.removeAttr('disabled');
     }
   };

тогда используйте вот так

$('#myElement').disable(true);

2018, без JQuery (ES6)

отключить все input:

[...document.querySelectorAll('input')].map(e => e.disabled = true);

отключить input С id="my-input"

document.getElementById('my-input').disabled = true;

вопрос С JQuery, это просто FYI.

<html>
<body>

Name: <input type="text" id="myText">



<button onclick="disable()">Disable Text field</button>
<button onclick="enable()">Enable Text field</button>

<script>
function disable() {
    document.getElementById("myText").disabled = true;
}
function enable() {
    document.getElementById("myText").disabled = false;
}
</script>

</body>
</html>

в jQuery Mobile:

для отключения

$('#someselectElement').selectmenu().selectmenu('disable').selectmenu('refresh', true);
$('#someTextElement').textinput().textinput('disable');

включить

$('#someselectElement').selectmenu().selectmenu('enable').selectmenu('refresh', true);
$('#someTextElement').textinput('enable');

отключить true для типа ввода:

в случае определенного типа ввода (Ex. Ввод типа текста)

$("input[type=text]").attr('disabled', true);

для всех типов ввода типа

$("input").attr('disabled', true);

Comments

    Ничего не найдено.