我無法從dom中刪除元素。我正在使用firfox。我的代碼看起來像這樣只能添加dom元素但不能刪除它們
我有一個表單,在提交之前應該填寫所有文本框。我的形式看起來像這樣
<form name="form" method="post" action="url" onsubmit="return checkEmpty(this)" >
<div class="field">
<label>field1</label><input type="text" name="f1" />
</div>
<div class="field">
<label>field2</label><input type="text" name="f2" />
</div>
..
....
......
input type="submit" name="Submit" value="submit" />
</form>
我在這裏做的是,當一個表單提交我檢查是否有文本框爲空,如果有任何我創建了一個DOM元素H3和它添加到了DIV相應的字段,如果文本框不是空的,我檢查是否有任何文本框附加到相應的字段,如果我找到一個我刪除它。這裏是我的javascript代碼
function checkEmpty(form) {
var textboxes=form.elements;
for(var i=0;i<textboxes.length;i++)
{
if((textboxes[i].type=="text" || textboxes[i].type=="password") && textboxes[i].textLength==0) //text box is empty,this code works in firefox but not in chrome
{
var msg=document.createElement('h3');
msg.innerHTML="u cant leave this field blank";
textboxes[i].parentNode.appendChild(msg);
return false;
}
else //text box is not empty,this code neither works in firefox nor in chrome
{
var rem_msg=textboxes[i].parentNode.getElementsByTagName('h3');
for(var j=0;j<rem_msg.length;j++)
textboxes[i].parentNode.removeChild(rem_msg[j]);
}
}
}
,直到我不刪除代碼工作正常元素,但除電元件是neccessary因爲例如用戶犯規在第一次嘗試輸入在文本框中輸入1的任何值,因此一個H3元素會但現在他在第一個文本框中輸入了一些文本,但是第二個文本框留空,所以第一個文本框的h3元素應該消失。代碼看起來很簡單,我得到一個節點的引用,然後傳入appendChild
或removeChild
。此外,我甚至不能夠將元素添加到谷歌瀏覽器的DOM
如果我刪除'else'塊的代碼工作正常我的意思是即使即使所有的文本框都是空的,我點擊提交表格提交 – lovesh
即時即時即可添加元素,但只在firefox.in鉻:謝謝你的工作 – lovesh
@lovesh歡迎 – Sotiris