我正在尝试从表单中获取输入值并将它们设置为对象属性。表单内部有两个 div,一个用于contact1 的详细信息,另一个用于contact2。
为了解决这个问题,我创建了一个带有属性的 javascript 对象“ ContactTab() ”,然后我创建了它的两个实例“ contact1 ”和“ contact2 ”以及一个方法“ setName() ”来设置名称。
最后,我编写了方法“populateContactTab("divID")”,旨在根据函数中指定的 div 填充“contact1”或“contact2”。
我没有收到任何错误,但是当我输出实例对象时,名称为空。
我应该这样做吗?
谢谢你。
HTML
<form id="jform" action="" method="get">
<div id="primaryContact" style="float:left;">
<label for="jname">First name:</label>
<input type="text" id="jname" class="contactTab jname" name="fname" value=""><br>
</div>
<div id="secondaryContact" style="float:right;">
<label for="jname">First name:</label>
<input type="text" id="jname" class="contactTab jname" name="fname" value=""><br>
</div>
<input type="submit" value="Submit">
</form>
JAVASCRIPT
function ContactTab() // I specify the object
{
this.name = "";
this.lastName = "";
this.address = "";
this.age = "";
this.phone = "";
}
var contact1 = new ContactTab();//Create two instances
var contact2 = new ContactTab();
function populateContactTab(divID){ //should get values of inputs of specific class and set them to one of the instances.
event.preventDefault();
var objectName;
if (divID == "primaryContact")
{
objectName = "contact1";
}
else (divID == "secondaryContact")
{
objectName = "contact2";
}
$(".contactTab").each( function(index, item){
switch(item)
{
case $(this).hasClass('jname'):
objectName.setName($(this).val());
case 'jlastName':
objectName.setLastName();
case 'jage':
objectName.setAge();
case 'jphone':
objectName.setPhone();
case 'jaddress':
objectName.setAddress();
break;
}
});
}
ContactTab.prototype.setName = function(newName)
{
if (typeof newName != 'undefined')
{
this.name = newName;
}
else
{
document.write("Please enter a valid name");
}
};