Pergunta

Eu tenho um formulário de pesquisa com um construtor de consulta. O construtor é ativada por um botão. Algo como isto

<h:form id="search_form">
  <h:outputLabel for="expression" value="Expression"/>
  <h:inputText id="expression" required="true" value="#{searcher.expression}"/>
  <button onclick="openBuilder(); return false;">Open Builder</button>
  <h:commandButton value="Search" action="#{searcher.search}"/>
</h:form>

O resultado é HTML que tem tanto um <button/> e um <input type="submit"/> no formulário. Se o usuário insere uma string no campo de expressão e bate a tecla Enter em vez de clicar no botão enviar, o construtor de consulta é exibido quando o comportamento esperado é que a busca ser submetido. O que dá?

Foi útil?

Solução

é assumido

Um botão em um formulário HTML a ser usado para enviar o formulário. Alterar botão para input type = "button" e que deve corrigi-lo.

Como alternativa, adicione type = "button" ao elemento botão.

Outras dicas

como o primeiro, dar uma ID botão para pesquisar. Em seguida, na caixa de texto, você pode interceptar evento de cliente onkeydown , com uma função (javascript) como este:

  function KeyDownHandler(event)
    {
        // process only the Enter key
        if (event.keyCode == 13)
        {
            // cancel the default submit
            event.returnValue=false;
            event.cancel = true;
            // submit the form by programmatically clicking the specified button
            document.getElementById('searchButtonId').click();
        }
    }

Eu Hoper i ajudá-lo.

se houver um único campo de entrada dentro do formulário, muitos navegadores enviar os formulários automaticamente quando a tecla enter é hit.

Tente

  1. Adicionar outro campo de entrada. Escondê-lo, denominando-o de modo que não é visível. (Por exemplo, <input type="text" name="bogusField" style="display: none;" />
  2. Bloquear a forma tecla enter apresentar comportamento dentro de um manipulador de eventos JavaScript (por exemplo, aqui ou aqui ). Ainda melhor, use um kit de ferramentas GUI que podem ajudar com isso (por exemplo, GWT)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top