javascript - value - set text inside input jquery




Desabilitar/habilitar uma entrada com jQuery? (11)

$input.disabled = true;

ou

$input.disabled = "disabled";

Qual é o caminho padrão? E, inversamente, como você ativa uma entrada desativada?


2018, sem JQuery (ES6)

Desativar todas as input :

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

Desativar input com id="my-input"

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

A questão é com o JQuery, é apenas FYI.


jQuery 1.6+

Para alterar a propriedade disabled , você deve usar a função .prop() .

$("input").prop('disabled', true);
$("input").prop('disabled', false);

jQuery 1.5 e abaixo

A função .prop() não existe, mas .attr() faz o mesmo:

Defina o atributo desativado.

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

Para habilitar novamente, o método apropriado é usar .removeAttr()

$("input").removeAttr('disabled');

Em qualquer versão do jQuery

Você sempre pode confiar no objeto DOM real e é provavelmente um pouco mais rápido que as outras duas opções se você está lidando apenas com um elemento:

// assuming an event handler thus 'this'
this.disabled = true;

A vantagem de usar os .prop() ou .attr() é que você pode definir a propriedade para um grupo de itens selecionados.

Nota: Em 1.6 existe um método .removeProp() que se parece muito com removeAttr() , mas NÃO DEVE SER USADO em propriedades nativas como 'disabled' trecho 'disabled' da documentação:

Nota: Não use este método para remover propriedades nativas, como marcadas, desativadas ou selecionadas. Isso removerá a propriedade completamente e, uma vez removido, não poderá ser adicionado novamente ao elemento. Use .prop () para definir essas propriedades como false.

De fato, eu duvido que haja muitos usos legítimos para este método, adereços booleanos são feitos de tal maneira que você deve configurá-los para false em vez de "removê-los" como seus equivalentes "atributo" em 1.5


Atualização para 2018:

Agora não há necessidade de jQuery e já faz um tempo que document.querySelector ou document.querySelectorAll (para vários elementos) executam quase exatamente o mesmo trabalho que $, além de outros mais explícitos getElementById , getElementsByClassName , getElementsByTagName

Desativando um campo da classe "input-checkbox"

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

ou vários elementos

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

Desativar:

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

Habilitar:

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

Há muitas maneiras de usá-los, você pode ativar / desativar qualquer elemento :

Abordagem 1

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

Abordagem 2

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

Se você estiver usando o jQuery 1.7 ou versão superior, use prop (), em vez de attr ().

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

Se você deseja ativar qualquer elemento, então você só tem que fazer o oposto do que você fez para desativá-lo. No entanto, o jQuery fornece outra maneira de remover qualquer atributo.

Abordagem 1

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

Abordagem 2

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

Abordagem 3

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

Novamente, se você estiver usando o jQuery 1.7 ou versão superior, use prop (), em vez de attr (). Isso é É assim que você habilita ou desabilita qualquer elemento usando jQuery.


No jQuery Mobile:

Para desativar

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

Para ativar

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

Use assim,

 $( "#id" ).prop( "disabled", true );

    $( "#id" ).prop( "disabled", false );

Você pode colocar isso em algum lugar global em seu código:

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

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

E então você pode escrever coisas como:

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

Desativar true para o tipo de entrada:

No caso de um tipo de entrada específico ( Ex. Entrada de tipo de texto )

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

Para todo tipo de tipo de entrada

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

    // Disable #x
    $( "#x" ).prop( "disabled", true );
    // Enable #x
    $( "#x" ).prop( "disabled", false );

Às vezes, você precisa desativar / ativar o elemento de formulário, como entrada ou área de texto. Jquery ajuda você a facilmente fazer isso com a configuração de atributo desativado para "desativado". Por exemplo:

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

Para ativar o elemento desativado, é necessário remover o atributo "disabled" desse elemento ou esvaziá-lo. Por exemplo:

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

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

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


<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>






html-input