我想不通爲什麼appendChild
返回undefined。想不通爲什麼appendChild返回undefined
我也試過t.previousSibling.appendChild(document.createElement('span'));
,它返回「previousSibling undefined」。
我需要添加一個span類型的「錯誤」類型的元素到span中,並使用標籤的textnode。因此,我遍歷所有輸入並查找一個空的,如果它是空的,它應該在輸入標籤旁邊添加「* required」消息。我有很多想法,但不清楚問題出在哪裏。謝謝你的幫助!
var obj = {
inputs: document.getElementsByTagName("input"),
btn: document.getElementById('submit'),
init : function() {
obj.btn.onclick = obj.submitForm();
},
submitForm : function() {
for (var i=0; i<obj.inputs.length; i++) {
if (obj.inputs[i].value==="") {
switch(obj.inputs[i].name) {
case "fname" : match=true; obj.error("fname");
case "lname" : match=true; obj.error("lname");
}
}
}
},
error : function(t) {
var err = "*required";
var j = t.previousSibling.appendChild(document.createElement('span'));
j.className = "error";
j.appendChild(document.createTextNode(err));
}
}
Here is HTML:
<head>
<title>Homework 9 JavaScript form</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form method="post" action="">
<div>
<ul>
<li><label>First Name</label><input type="text" id="fname" name="fname" size="30" /></li>
<li><label>Last Name</label><input type="text" name="lname" size="30" /></li>
<li><label>Phone</label><input type="text" name="phone" size="30" /></li>
<li><label>Email</label><input type="text" name="email" size="30" /></li>
<li><input type="submit" name="submit" id="submit" value="Submit" />
</ul>
</div>
</form>
<script type="text/javascript" src="hw9.js"></script>
<script type="text/javascript">obj.init();</script>
</body>
</html>
非常感謝你,這是有道理的。希望有一天,當我知道我在做什麼時,我也可以幫助其他人;)乾杯。 – 2012-04-01 22:19:09
更新:我克服了這個駝峯,現在我應該能夠從這裏運作。在這堂課還活着一週... – 2012-04-02 00:08:36