Eu tinha um código de trabalho que poderia redefinir meu formulário ao clicar em um botão de redefinição. No entanto, depois que meu código está ficando mais longo, percebo que ele não funciona mais.
<div id="labels">
<table class="config">
<thead>
<tr>
<th colspan="4"; style= "padding-bottom: 20px; color:#6666FF; text-align:left; font-size: 1.5em">Control Buttons Configuration</th>
</tr>
<tr>
<th>Index</th>
<th>Switch</th>
<th>Response Number</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<form id="configform" name= "input" action="#" method="get">
<tr><td style="text-align: center">1</td>
<td><img src= "static/switch.png" height="100px" width="108px"></td>
<td id="small"><input style="background: white; color: black;" type="text" value="" id="number_one"></td>
<td><input style="background: white; color: black;" type="text" id="label_one"></td>
</tr>
<tr>
<td style="text-align: center">2</td>
<td><img src= "static/switch.png" height="100px" width="108px"></td>
<td id="small"><input style="background: white; color: black;" type="text" id = "number_two" value=""></td>
<td><input style="background: white; color: black;" type="text" id = "label_two"></td>
</tr>
<tr>
<td style="text-align: center">3</td>
<td><img src= "static/switch.png" height="100px" width="108px"></td>
<td id="small"><input style="background: white; color: black;" type="text" id="number_three" value=""></td>
<td><input style="background: white; color: black;" type="text" id="label_three"></td>
</tr>
<tr>
<td style="text-align: center">4</td>
<td><img src= "static/switch.png" height="100px" width="108px"></td>
<td id="small"><input style="background: white; color: black;" type="text" id="number_four" value=""></td>
<td><input style="background: white; color: black;" type="text" id="label_three"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" id="configsubmit" value="Submit"></td>
</tr>
<tr>
<td><input type="reset" id="configreset" value="Reset"></td>
</tr>
</form>
</tbody>
</table>
</div>
E meu jQuery:
$('#configreset').click(function(){
$('#configform')[0].reset();
});
Existe alguma fonte que devo incluir nos meus códigos para que o .reset()
método funcione? Anteriormente eu estava usando:
<script src="static/jquery.min.js">
</script>
<script src="static/jquery.mobile-1.2.0.min.js">
</script>
e o .reset()
método estava funcionando.
Atualmente estou usando
<script src="static/jquery-1.9.1.min.js"></script>
<script src="static/jquery-migrate-1.1.1.min.js"></script>
<script src="static/jquery.mobile-1.3.1.min.js"></script>
Poderia ser um dos motivos?
javascript
jquery
forms
reset
yvonnezoe
fonte
fonte
Respostas:
você pode tentar usar o link de referência trigger ()
fonte
http://jsfiddle.net/8zLLn/
Coloque no JS violino. Trabalhou como pretendido.
Portanto, nenhuma das questões acima mencionadas tem culpa aqui. Talvez você esteja tendo um problema de identificação conflitante? O clique está realmente sendo executado?
Edit: (porque eu sou um saco triste sem a capacidade de comentar) Não é um problema diretamente com o seu código. Funciona bem quando você o tira do contexto da página que está usando no momento; portanto, em vez de ser algo com os dados específicos do formulário jQuery / javascript e atributo atribuído, deve ser outra coisa. Eu começaria a dividir o código em torno dele e tentaria descobrir onde ele estava acontecendo. Quero dizer, apenas para 'ter certeza', suponho que você possa ...
na função de clique e verifique se está direcionando para a forma correta ...
e se for, tem que ser algo que não está listado aqui.
editar parte 2: Uma coisa que você pode tentar (se não o direcionar corretamente) é usar "input: reset" em vez do que você está usando ... além disso, sugiro porque não é o alvo que está trabalhando incorretamente para descobrir qual é o objetivo do clique real. Basta abrir as ferramentas de desenvolvedor / firebug, o que você tem, lançar
e veja o que aparece. e então podemos ir de lá.
fonte
$('#ptest').html("clicked reset")
no clique (function () {}); onde deveria mostrar "clicou em reset" mas não apareceu[0]
selecione o primeiro elemento. Mas no jQuery, ele seleciona o html real do elemento. Então,[0]
está fornecendo o html, que permite chamar o método html, não o jQuery, chamadoreset
. Consulte a resposta de @kevin abaixo para obter mais informações.De acordo com este post aqui , o jQuery não tem
reset()
método; mas o JavaScript nativo sim. Portanto, converta o elemento jQuery em um objeto JavaScript usando:fonte
Essa é uma das coisas mais fáceis de fazer em Javascript vanilla do que o jQuery. O jQuery não possui um
reset
método, mas o HTML Form Element, portanto, você pode redefinir todos os campos em um formulário como este:Se você fizer isso via jQuery (como visto em outras respostas aqui :)
$('#configform')[0].reset()
,[0]
está buscando o mesmo elemento DOM do formulário que você obteria diretamente viadocument.getElementById
. A última abordagem é ao mesmo tempo mais eficiente e mais simples (já que, com a abordagem jQuery, você primeiro obtém uma coleção e, em seguida, precisa buscar um elemento nela, enquanto que com o Javascript vanilla você obtém o elemento diretamente).fonte
Um botão de redefinição não precisa de nenhum script (ou nome ou ID):
e pronto. Mas se você realmente deve usar o script, observe que todo controle de formulário tem uma propriedade de formulário que faz referência ao formulário em que está, para que você possa fazer:
Mas um botão de redefinição é uma escolha muito melhor.
fonte
Finalmente resolvi o problema !! @RobG estava certo sobre a
form
etiqueta etable
tag. aform
etiqueta deve ser colocada fora da mesa. com isso,funciona sem a necessidade de jquery ou qualquer outra coisa. basta clicar no botão e tadaa ~ todo o formulário é redefinido;) brilhante!
fonte
form
tag foi fechada automaticamente no início dotbody
arquivo, excluindo os elementos de entrada.Eu uso este código simples:
fonte
Usando a função jquery .closest (elemento) e .find (...) .
Obtendo o elemento pai e procurando o filho .
Finalmente, faça a função necessária.
fonte
$("#form").find("input[type=text], textarea").val("");
eu fiz dessa maneiraA primeira linha redefinirá as entradas do formulário
O segundo redefinirá o select2
Opcional: Você pode usar isso se tiver tipos diferentes registrados com eventos diferentes
fonte
Uma redefinição rápida dos campos do formulário é possível com esta função de redefinição do jQuery.
quando você obtiver resposta de sucesso, atire abaixo do código.
$(selector)[0].reset();
fonte
Você pode apenas adicionar um tipo de entrada = reset com um id = resetform como este
então, com jquery, você simplesmente usa a função .click () no elemento com o id = resetform da seguinte maneira
e o formulário é redefinido Nota: Você também pode ocultar o botão de redefinição com id = resetform usando seu css
fonte
Aqui está uma solução simples com o Jquery. Funciona globalmente. Dê uma olhada no código.
Adicione uma classe clara a um botão em todos os formulários necessários para redefini-lo. Por exemplo:
fonte
jQuery não possui
reset()
método; mas o JavaScript nativo sim. Portanto, converta o elemento jQuery em um objeto JavaScript usando:Podemos simplesmente usar código Javascript
fonte
A maneira mais simples de pensar que é robusta. Coloque dentro da tag do formulário.
fonte
Você pode usar o seguinte.
Em seguida, limpe o formulário:
fonte
Seu código deve funcionar. Verifique se
static/jquery-1.9.1.min.js
existe. Além disso, você pode tentar reverter parastatic/jquery.min.js
. Se isso resolver o problema, você o identificou.fonte
configform
). Você deve fazer alguma investigação usando o console. Primeira tentativa$
. Se você estiver usando o Chrome, digitar$
no console ativará uma lista sensível ao contexto se o jQuery estiver carregado. Se você digitar$
e pressionar return, ele avaliará uma função se o jQuery estiver carregado. Próxima tentativa$("#configform")
. Clique com o botão direito do mouse no resultado e selecioneReveal in Elements panel
.