JavaScript para limpar o campo do formulário ao enviar antes do envio do formulário para o script Perl

StackOverflow https://stackoverflow.com/questions/2542510

Pergunta

Temos um formulário muito longo que possui vários campos e 2 botões de envio diferentes.Quando um usuário clica no primeiro botão de envio ("Pesquisa de fotos"), o formulário deve POST e nosso script fará uma pesquisa por fotos correspondentes com base no que o usuário digitou na entrada de texto ("photo_search_text") ao lado do primeiro botão de envio e recarregue o formulário inteiro com as fotos correspondentes adicionadas ao formulário.Ao clicar no 2º botão de envio (“Salvar alterações”) no final do formulário, ele deverá fazer um POST e nosso script deverá atualizar o banco de dados com as informações que o usuário inseriu no formulário.

Infelizmente, o layout do formulário torna impossível separá-lo em dois formulários separados.Verifiquei todo o formulário POST e, infelizmente, os campos enviados são idênticos ao script perl que processa o envio do formulário, independentemente de qual botão de envio é clicado, portanto, o script perl não consegue diferenciar qual ação executar com base em qual botão de envio é pressionado.A única coisa que consigo pensar é atualizar a ação onclick do segundo botão de envio para limpar o campo "photo_search_text" antes do formulário ser enviado e, em seguida, realizar uma pesquisa de fotos apenas se esse campo tiver um valor.

Com base em tudo isso, minha pergunta é como é o JavaScript que pode limpar o campo "photo_search_text" quando alguém clica no segundo botão de envio?Aqui está o que eu tentei até agora, nenhum dos quais funcionou com sucesso:

<input type="submit" 
       name="submit" 
       onclick="document.update-form.photo_search_text.value='';" 
       value="Save Changes"
>

<input type="submit" 
       name="submit" 
       onsubmit="document.update-form.photo_search_text.value='';" 
       value="Save Changes"
>

<input type="submit" 
       name="submit" 
       onclick="document.getElementById('photo_search_text')='';" 
       value="Save Changes"
>

Também usamos JQuery no site, portanto, se houver uma maneira de fazer isso com jQuery em vez de JavaScript simples, sinta-se à vontade para fornecer um código de exemplo para isso.Por último, se houver outra maneira de lidar com isso, não estou pensando em nenhuma e todas as sugestões serão bem-vindas.

Agradeço antecipadamente por sua ajuda!

Foi útil?

Solução

Se você fornecer à entrada um ID como este:

<input ID="nosearch" type="submit" name="submit" value="Save Changes">

Você pode fazer isso via jQuery um pouco mais fácil, assim:

$(function() {
  $("#nosearch").click(function() {
    $("#photo_search_text").val("");
  });
});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top