Respostas:
basta adicionar o seguinte atributo
// for disabled i.e. cannot highlight value or change
disabled="disabled"
// for readonly i.e. can highlight value but not change
readonly="readonly"
jQuery para fazer a mudança para o elemento (substituto disabled
para readonly
a seguir para a definição de readonly
atributo).
$('#fieldName').attr("disabled","disabled")
ou
$('#fieldName').attr("disabled", true)
NOTA: A partir do jQuery 1.6, é recomendável usar em .prop()
vez de .attr()
. O código acima irá funcionar exatamente o mesmo, exceto substituto .attr()
para .prop()
.
Você pode fazer isso simplesmente marcando-o disabled
ou enabled
. Você pode usar este código para fazer isso:
//for disable
$('#fieldName').prop('disabled', true);
//for enable
$('#fieldName').prop('disabled', false);
ou
$ ('# fieldName'). prop ('somente leitura', true);
$ ('# fieldName'). prop ('somente leitura', false);
--- É melhor usar prop em vez de attr.
Use este exemplo para tornar a caixa de texto somente leitura ou não.
<input type="textbox" class="txt" id="txt"/>
<input type="button" class="Btn_readOnly" value="Readonly" />
<input type="button" class="Btn_notreadOnly" value="Not Readonly" />
<script>
$(document).ready(function(){
('.Btn_readOnly').click(function(){
$("#txt").prop("readonly", true);
});
('.Btn_notreadOnly').click(function(){
$("#txt").prop("readonly", false);
});
});
</script>
Existem dois atributos, a saber, readonly
e disabled
que podem gerar uma entrada semi-somente leitura. Mas há uma pequena diferença entre eles.
<input type="text" readonly />
<input type="text" disabled />
readonly
atributo desabilita o texto de entrada e os usuários não podem mais alterá-lo.disabled
atributo não apenas tornará seu texto de entrada desativado (imutável), mas também não poderá ser enviado .Abordagem jQuery (1):
$("#inputID").prop("readonly", true);
$("#inputID").prop("disabled", true);
Abordagem jQuery (2):
$("#inputID").attr("readonly","readonly");
$("#inputID").attr("disabled", "disabled");
Abordagem JavaScript:
document.getElementById("inputID").readOnly = true;
document.getElementById("inputID").disabled = true;
PS prop
introduzido com jQuery 1.6
.
Dado -
<input name="foo" type="text" value="foo" readonly />
isso funciona - (jquery 1.7.1)
$('input[name="foo"]').prop('readonly', true);
testado com readonly e readOnly - ambos funcionaram.
Talvez use o atributo desativado:
<input disabled="disabled" id="fieldName" name="fieldName" type="text" class="text_box" />
Ou apenas use a tag label;;)
<label>
<html xmlns="http://www.w3.org/1999/xhtml">
<head >
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
</head>
<body>
<div>
<input id="fieldName" name="fieldName" type="text" class="text_box" value="Firstname" />
</div>
</body>
<script type="text/javascript">
$(function()
{
$('#fieldName').attr('disabled', 'disabled');
});
</script>
</html>
Talvez seja significativo também acrescentar que
$('#fieldName').prop('readonly',false);
pode ser usado como uma opção de alternância.
readonly
atributo ao elemento, independentemente do valor passado. Portanto, seu exemplo acabaria tornando o campo de entrada somente leitura, apesar de ostensivamente definir o valor como false.
O setReadOnly (state) é muito útil para formulários, podemos definir qualquer campo para setReadOnly (state) diretamente ou de várias condições. Mas eu prefiro usar readOnly para definir opacidade no seletor, caso contrário o attr = 'disabled' também funcionará como mesma maneira.
exemplos readOnly:
$('input').setReadOnly(true);
ou através de várias codições como
var same = this.checked;
$('input').setReadOnly(same);
aqui estamos usando o valor booleano do estado para definir e remover o atributo readonly da entrada, dependendo de um clique na caixa de seleção.
Em html
$('#raisepay_id').attr("readonly", true)
$("#raisepay_id").prop("readonly",true);
no bootstrap
$('#raisepay_id').attr("disabled", true)
$("#raisepay_id").prop("disabled",true);
O JQuery é uma biblioteca em mudança e, às vezes, eles fazem melhorias regulares. .attr () é usado para obter atributos das tags HTML e, embora esteja perfeitamente funcional, o .prop () foi adicionado posteriormente para ser mais semântico e funciona melhor com atributos sem valor, como 'marcado' e 'selecionado'.
É recomendável que, se você estiver usando uma versão posterior do JQuery, use .prop () sempre que possível.