Pergunta

Então - Eu tenho uma caixa de seleção

<asp:CheckBox ID="chkOrder" runat="server" Visible='<%#IsCheckBoxVisible() %>' 
     Checked="false"
     OnCheckedChanged="chkOrder_CheckedChanged" AutoPostBack="true" 
     EnableViewState="false"></asp:CheckBox>

o descrito acima. Agora, a caixa de seleção está em um gridview e na ligação de dados - para todas as linhas no gridview a caixa de seleção é definida como falsa. O problema é que a primeira opção ainda é verdade marcada.

No IE o problema não existe, mesmo para Chrome. Eu estou ficando sem opções. Além disso, se eu uso

$("checkboxName").attr("checked"); // verified on jquery ready function.

Em FF é verdade; IE false; falsa Chrome.

Todas as dicas?

Editar

Agora prepare-se para isso: no HTML gerado - não há verificada atributo. O diff entre FF e IE é exatamente o mesmo .

Outra coisa - a grade que contém as caixas de seleção tem um painel de ajax nele e quando eu página da grelha, tentar ir para a página 2 -. A CheckedChanged em codebehind é acionado

Foi útil?

Solução

Em alguns codificação eu fiz recentemente, notei que FF3 estava lembrando o que eu marcada, mesmo depois de uma atualização de página F5 php. Olhando para a fonte mostrou o HTML correto que eu queria gerado. Para contornar este era ir até a barra de endereços e forçar o pedido para a página novamente.

Por este trabalho em torno era necessário Eu não tenho certeza, mas de uma perspectiva normal de usabilidade I apreciado, não apenas durante o desenvolvimento.

Outras dicas

O Firefox lembra o estado do formulário campos por padrão. Ctrl+F5 irá forçar o Firefox para limpar esta cache.

Você pode desativar isso para formulário de entrada e elementos individuais:

<form autocomplete="off"> 

<input ... autocomplete="off" /> 

Você deve omitir o "marcada" atributo completo, se você não quiser que a caixa de seleção para ser verificados, como a verificação é acionado pelo presença de um atributo checked, não o seu valor:

As caixas de verificação (e botões de rádio) são on / off switches que podem ser alternadas pelo usuário. Um switch é "on" quando atributo checked do elemento de controle é definido .

http://www.w3.org/TR/html401/ Interact / Forms.html # checkbox

Para mim, a marcação a seguir produz uma caixa de seleção que está marcada no IE, Firefox e Opera, como seria de esperar com base na especificação:

<input type="checkbox" checked="false">

Esta lança luz sobre uma peculiaridade interessante com caixas de seleção. aqui está um pouco html muito simples eu vim acima com para realmente resumir corretamente:

<html>
<body>

<input type="checkbox" checked="false" id="cb" />

<script language="javascript">
if (cb.checked == true)
  document.write('this is retarded');
</script>

</body>
</html>

Você já tentou comparar o HTML genrated de FF e IE? (Com "exibição da fonte de html")

Apenas para localizar o problema um pouco mais precisamente. É apenas uma pequena chance, mas se o HTML é diferente para ambos os navegadores, você tem um problema na serverside com a forma como ASP cria o HTML.

Se ambos são o mesmo, e totalmente queixa HTML de ter encontrado um bug no FF,

Isso também acontece para selecionar caixas no Firefox 3, que pode ser uma grande dor se você usar a referida caixa para executar AJAX / atualizar a página.

Se as atualizações de usuários da página ou faz algum botão volta estranheza eles podem acabar com a caixa de seleção ainda selecionado, mas na verdade tem que un-selecionar e re-selecionar, a fim de executar re-o AJAX.

Neste caso, eu descobri que usar o evento onunload corpo para limpar os / caixas selecione "Resolve" o "problema".

$("input[id$=chkOrder]").click(function() {        
    if (!$(this).attr("checked")) { $(this).removeAttr("checked"); }
    else { $(this).attr("checked", "checked"); }
})
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top