/ / Obtendo valor da caixa de entrada em html em Javascript externo - javascript, html

Obtendo valor da caixa de entrada em html em JavaScript externo - javascript, html

Tenho uma página HTML e um arquivo JavaScript externo. Como faço para acessar o valor de um input tag da página HTML em JavaScript? Meu HTML é o seguinte:

<form name="formxml">
<input type="text" name="xmlname"/>
<input type="submit" value="Click me please" onclick="loadxml()"/>
</form>

No arquivo Javascript, eu estava tentando:

var name = document.formxml.xmlname.value

mas isso dá um erro de "document.formxml is undefined"

O que devo fazer?

Respostas:

3 para resposta № 1

Parece que o js externo não consegue encontrar o formulárioainda porque é analisado antes de a página ser renderizada? Não tenho certeza sobre isso, mas colocá-lo em uma função e chamar a função na página (quando terminar de carregar) funciona:

function foo () {
var name = document.formxml.xmlname.value;
alert(name);
}

e

<form action="" method="post" name="formxml">
<input type="text" name="xmlname" value="123" id="xmlname">
<input type="button" onclick="foo();">
</form>

2 para resposta № 2

Você pode usar o seguinte depois de adicionar um atributo id à tag de entrada

document.getElementById("id").value

2 para resposta № 3

talvez documento.formulários.formxml.xmlname.value


1 para resposta № 4

Você também pode usar:

var name = document.forms[0].xmlname.value; //where [0] means the first form on the page

1 para resposta № 5
var name = document.formxml.value; //Will not work in all browsers
var name = document.forms[0].xmlname.value; //safest if the form is the first on the page
var name = document.getElementById("inputId").value; //works in basically everything assuming the browser has DHTML (which is like everything).

O último requer que seu elemento de entrada tenha um id = "inputId" adicionado a ele.

Além disso, seu código funcionará, assumindo que o formulário existe quando o js externo é carregado (é por isso que o forms [0] funcionará aqui e o formxml não.


1 para resposta № 6

Tente isso

<script>
function yourfunction()
{
var x = document.getElementsByName("fieldname").value;
}
</script>