Pergunta

No meu FORM, por alguma razão, eu posso pegar meu variável de entrada formulário via onsubmit mas não usando action.

Isso funciona:

<form onsubmit="javascript:myFunc(this.city.value);">
    <p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>

Esta não funciona (this.city.value é encontrado para ser nulo)

<form action="javascript:myFunc(this.city.value);">
    <p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>

Por que é que onsubmit pode obter o this.city.value mas o evento action não pode?

Foi útil?

Solução

A tag ação formulário não faz referência qualquer coisa com this

Em vez disso, use um local absoluto

action="javascript:myFnc(document.getElementById('city-field').value)"

Outras dicas

Editar : Graças ao comentário de Christoph, abaixo, eu percebi que a minha enorme descuido. Aqui está a solução final com a sua sugestão implementada.

<form action="" onsubmit="myFunc(this.city.value); return false;">
    <p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>

Isso deve fazer o que você precisa. Peço desculpas por não dando-lhe toda a minha atenção nas minhas respostas anteriores.

HTML formulários são usados ??para enviar de volta dados a um script no servidor para processamento de dados. Quando um formulário é enviado, os dados nos campos do formulário é passado para o servidor na forma de pares nome-valor. scripts do lado do servidor, que podem ser escritos em várias línguas diferentes, são utilizados para processar os dados de entrada e retornar uma nova página HTML para o navegador. A página retornado para o navegador poderia ser qualquer coisa de um "Obrigado por registrar" mensagem ou uma lista de resultados de busca gerados a partir de uma consulta de banco de dados.

desde formulário serve para enviar dados para outro arquivo no servidor. em ação que só pode especificar o caminho para o qual é preciso enviar os dados. Então, se você não pode obter os valores que o formulário está tendo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top