Eu tenho tentado definir o valor de um campo oculto em um formulário usando jQuery, mas sem sucesso.
Aqui está um código de exemplo que explica o problema. Se eu mantiver o tipo de entrada como "texto", ele funcionará sem problemas. Mas, alterar o tipo de entrada para "oculto", não funciona!
<html>
<head>
<script type="text/javascript" src="jquery.js">
</script>
<script type="text/javascript">
$(document).ready(function() {
$("button").click(function() {
$("input:text#texens").val("tinkumaster");
});
});
</script>
</head>
<body>
<p>
Name:
<input type="hidden" id="texens" name="user" value="texens" />
</p>
<button>
Change value for the text field
</button>
</body>
</html>
Eu também tentei a seguinte solução alternativa, definindo o tipo de entrada como "texto" e, em seguida, usando um estilo "exibição: nenhum" para a caixa de entrada. Mas, isso também falha! Parece que o jQuery tem algum problema ao definir campos de entrada ocultos ou invisíveis.
Alguma ideia? Existe uma solução alternativa para isso que realmente funciona?
fonte
val()
funciona bem na entrada oculta, alterando o valor de "não alterado" para "alterado". Revisei o exemplo para incluir o código que você colou acima, com um alerta para confirmar a alteração do valor: jsbin.com/elovo/2/editSe você estiver com problemas para definir o valor de um campo oculto porque está passando um ID para ele, esta é a solução:
Em vez de
$("#hidden_field_id").val(id)
apenas fazer$("input[id=hidden_field_id]").val(id)
. Não tenho certeza qual é a diferença, mas funciona.fonte
Finalmente, encontrei uma solução e é simples:
Funciona como um encanto. Nenhuma pista do porquê do jQuery não voltar a isso.
fonte
type="radio"
. Estou com preguiça de relatar um problema, principalmente porque resolvi esse problema há 4 anos. Também estou surpreso se ele deve ser corrigido no jQuery - possivelmente foi implementado dessa maneira para proteger as crianças jQuery de si mesmas? Quem sabe ...Eu tive o mesmo problema. Curiosamente, o Google Chrome e possivelmente outros (não tenho certeza) não gostaram
(sem alteração)
(sem alteração)
mas isso funciona !!!!
ALTERAR!!
ALTERAR!!
deve ser uma "coisa de string"
fonte
.val(' 0')
, que é analisado corretamenteparseInt
em Javascript e tambémint()
em Python, meu back-end.trabalhou para mim, quando nem
nem
fez.
fonte
.val não funcionou para mim, porque estou pegando o lado do servidor do atributo value e o valor nem sempre foi atualizado. então eu usei:
Espero que ajude alguém.
fonte
Na verdade, esse é um problema contínuo. Enquanto Andy está certo sobre a fonte baixada, .val (...) e .attr ('value', ...) não parecem realmente modificar o html. Eu acho que este é um problema de javascript e não um problema de jquery. Se você tivesse usado o firebug, mesmo teria feito a mesma pergunta. Embora pareça que, se você enviar o formulário com os valores modificados, o html não será alterado. Corri para esse problema tentando criar uma visualização de impressão do formulário modificado (fazendo [form] .html ()), ele copia tudo bem, incluindo todas as alterações, excetovalores muda. Assim, minha visualização modal de impressão é um pouco inútil ... minha solução alternativa pode ter que ser 'criar' um formulário oculto contendo os valores adicionados, ou gerar a visualização independentemente e fazer cada modificação que o usuário fizer também modificar a visualização. Ambos não são ótimos, mas, a menos que alguém descubra por que o comportamento de definição de valor não altera o html (no DOM, estou assumindo), será necessário.
fonte
Eu estava tendo o mesmo problema e descobri o que estava errado. Eu tinha o HTML definido como
A leitura dos valores do formulário no servidor sempre resultava em email vazio. Depois de coçar a cabeça (e numerosas pesquisas), percebi que o erro não era definir o formulário / entrada corretamente. Ao modificar a entrada (como mostrado a seguir), funcionou como um encanto
Adicionando a esta discussão, caso outras pessoas tenham o mesmo problema.
fonte
No meu caso, eu estava usando uma não-string (número inteiro) como o parâmetro val () que não funciona, o truque é tão simples quanto
fonte
Usar
val()
não funcionou para mim. Eu tive que usar.attr()
todos os lugares. Também tinha tipos diferentes de entradas e tinha que ser bem explícito no caso de caixas de seleção e menus selecionados.Atualizar campo de texto
Atualizar imagem ao lado da entrada do arquivo
Atualizar booleano
Atualizar seleção (com número ou sequência)
fonte
Outra pegadinha aqui desperdiçou um pouco do meu tempo, então pensei em passar a ponta. Eu tinha um campo escondido, eu dei um id que tinha. e
[]
colchetes no nome (devido ao uso com struts2) e o seletor$("#model.thefield[0]")
não encontrou meu campo oculto. Renomear o ID para não usar pontos e colchetes fez com que o seletor começasse a funcionar. Então, no final, acabei com um idmodel_the_field_0
e o seletor funcionou bem.fonte
$("#model.thefield[0]")
está sendo interpretado como: um elemento comid
igual amodel
, um cssclass
dethefield
e algunsattribute
chamados0
... Se você quiser usar esses caracteres no seuid
uso a abordagem sugerida pela Chuck Callebs em sua resposta . No HTML5,id
pode haver qualquer sequência que não esteja vazia e não contenha caracteres de espaço ( referência ).Usando ID:
Usando classe:
fonte
Se você estiver procurando por haml, esta é a resposta para o campo oculto para definir valor para um campo oculto, como
No seu jquery, apenas converta o valor em string e, em seguida, acrescente-o usando a propriedade attr no jquery. espero que isso também funcione em outros idiomas.
fonte
fonte
Basta usar a sintaxe abaixo de obter e definir
OBTER
aqui uma variável manterá o valor de hiddenfield (selectindex)
Lado do servidor
CONJUNTO
fonte
Qualquer pessoa que esteja lutando com isso, existe uma maneira "inline" muito simples de fazer isso com o jQuery:
Isso define o valor do campo oculto à medida que o texto é digitado na entrada visível usando o evento onChange. Útil (como no meu caso) em que você deseja passar um valor de campo para um formulário "Pesquisa avançada" e não forçar o usuário a digitar novamente sua consulta de pesquisa.
fonte