texto asp.net não envia valor quando desativado

Eu tenho que habilitar e desabilitar a checkbox de texto usando jQuery, que funciona bem. A checkbox de texto desativada tem valor nela. Mas o problema que estou enfrentando é que, a checkbox de texto desativada não passa valor para o servidor. Quando eu o habilito usando jQuery, vejo o valor da checkbox de texto no código por trás (modo de Depuração). Alguma idéia de por que isso está acontecendo ou uma abordagem alternativa para obter valor da checkbox de texto desativada no código por trás.

HTML:

 

Javascript que eu uso para desativar na página de exibição

 var inputBox = $("#"); inputBox.prop('disabled', true); 

obrigado

   

O motivo é simples, os valores das inputs desativadas não são enviados ao servidor devido à política de limitação de envio dos navegadores da web.

A especificação W3 diz que as tags de input desativadas são consideradas inválidas e não devem ser enviadas.

Em vez disso, use o atributo readonly :

  

Ou usando jQuery:

 $("#< %=txtUniqueNo.ClientID%>").attr('readonly', 'readonly'); 

ATUALIZAR:

Veja como remover o atributo readonly se necessário: http://jsfiddle.net/ynevet/84HrM/

Ele não será enviado para o servidor se você tiver a checkbox de texto desativada.

Defina um label para o valor da checkbox de texto e defina um campo oculto para o valor também.

ref de:

Vamos fazer isso usando poucos

  • Desativar a textbox após os valores enviados para o lado do servidor (ou habilitar a textbox e enviar valores, finalmente, disable a textbox )

  • armazenar os valores de textbox para quaisquer outros controles com o controle ( span ) deve ser ocultar e obter os valores de controle ( span ) ocultos para enviar ao servidor ‘

  • Você pode usar o Hidden field para armazenar valores de checkbox de texto para enviar os valores para o lado do servidor …

  • Ou use o atributo readonly vez de ativar e desativar o atributo

Em vez de usar Ativar atributo, tente usar desativado no estilo quando quiser desativá-lo e altere o valor do atributo quando quiser ativar.

 var inputBox = $("#< %=txtUniqueNo.ClientID%>"); inputBox.prop('readonly', true); 

ou

 inputBox.prop('readonly', false); 

agora servidor pode ler o valor da checkbox de texto