我在这里有一个基本的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()函数?
答案 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等访问。
编辑:尼克关于提交听众的建议更为传统,我仍然建议将它们放在一个很好的紧密对象中并传递给那里。