我使用JS生成基本表单;我怎样才能获得数据?

时间:2014-12-12 02:14:03

标签: javascript dom

我在这里有一个基本的javascript表单创建脚本

var loginDiv;
var loginForm;
var formUserInput;
var formUserPass;
var formSubmit;

loginDiv = document.createElement('div');
loginDiv.id = 'loginDiv';

loginForm = document.createElement("form");
loginForm.setAttribute('method', "post");
loginForm.setAttribute('action', 'JavaScript:doSomething()');

formUserInput = document.createElement("input");
formUserInput.setAttribute('type', "text");
formUserInput.setAttribute('name', "username");

formUserPass = document.createElement("input");
formUserPass.setAttribute('type', "text");
formUserPass.setAttribute('name', "password");

formSubmit = document.createElement("input");
formSubmit.setAttribute('type', "submit");
formSubmit.value = "Submit";

loginForm.appendChild(formUserInput);
loginForm.appendChild(document.createElement("br"));
loginForm.appendChild(formUserPass);
loginForm.appendChild(document.createElement("br"));
loginForm.appendChild(formSubmit);

loginDiv.appendChild(loginForm);

document.getElementById('game').appendChild(loginDiv);

我的问题是;如何将文本字段的值传递给doSomething()函数?

2 个答案:

答案 0 :(得分:2)

您可以单独从每个dom节点中获取值:

formUserInput.value

而不是使用它:

loginForm.setAttribute('action', 'JavaScript:doSomething()');

你可以绑定一个这样的事件处理程序:

loginForm.addEventListener("submit", function(){
    doSomething(formUserInput.value, formUserPass.value)
})

答案 1 :(得分:1)

您可以将其作为对象传递

Var formValues = { "username": document.getElementById(set an id).value, ... }

然后将表单值作为对象传递。您可以将其作为formValues.username等访问。

编辑:尼克关于提交听众的建议更为传统,我仍然建议将它们放在一个很好的紧密对象中并传递给那里。