我是javascript的新手,这是严格的练习。我有一个html表单(下面),我希望提交按钮在单击时使用Person
构造函数创建一个新对象。我希望新对象的名称与用户的名字无关。例如,如果名字为john,则会创建var john = new Person
。
形式:
<form name="theform">
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
Age: <input type="number" name="age"><br>
<input type="button" onClick="new Person()" value="Submit">
</form>
构造
function Person(){
this.firstname = document.theform.fname.value;
this.lastname = document.theform.lname.value;
var age = document.theform.age.value;
this.returnAge = function(){
return age;
}
};
答案 0 :(得分:0)
只需在提交按钮上输入ID即可:
document.getElementById("submit").onclick=function(){
var name=document.forms["theform"]["fname"].value;
window[name]= new Person();
console.log(window[name])
}
答案 1 :(得分:0)
这没有意义:为什么你想要一个动态命名的变量?
您使用variableName.propertyName
引用对象的属性。在这种情况下,那将是personName.firstname
。 那是你如何存储名字而不是作为变量名称本身(这没有意义:你会如何引用该对象?)。
答案 2 :(得分:-1)
<form name="theform">
First name: <input id="myName" type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
Age: <input type="number" name="age"><br>
<input type="button" onclick="window[document.getElementById('myName').value] = new Person();" value="Submit">
</form>
然后,如果您打开控制台并搜索john
,例如,它将返回该对象。
有效,但认为这样做的编码不好。