-2
ビルドしているフォームの要素に削除ボタンを追加する際に問題が発生しました。最後の機能deleteField()
は私にトラブルを与えています。削除しようとすると、イベントや色の要素を受け入れていません。JavaScriptを使用したHTML要素の削除
なぜ要素がノードクラスのサブセットである場合、その要素をノードとして受け入れないのですか?
<script type="text/javascript">
var counter = 1;
function addInput(divName, isUpdate, eventId, color){
var dropdown = document.createElement('select');
var color_field = document.createElement('INPUT');
var delete_button = document.createElement('BUTTON');
var x = document.createTextNode("X");
delete_button.onclick = deleteField(divName, counter);
color_field.setAttribute("type", "color");
color_field.name = "color[" + counter + "]";
color_field.id = "c"+i;
if(isUpdate) {
color_field.value = color;
}
@eventList.map { event =>
var option = document.createElement("option");
option.value = "@event.getId";
option.text = "@event.getTitle";
dropdown.add(option);}
dropdown.name = "event[" + counter + "]";
dropdown.id = "e" + counter;
color_field.appendChild(x);
var doc = document.getElementById(divName);
document.getElementById(divName).appendChild(document.createElement("br"));
document.getElementById(divName).appendChild(document.createTextNode("Set event #" + counter));
document.getElementById(divName).appendChild(dropdown);
if(isUpdate){dropdown.value = eventId};
document.getElementById(divName).appendChild(color_field);
document.getElementbyId(divName).appendChild(delete_button);
counter++;
}
function setInput(divName){
@existing_list.map { eventItem =>
addInput(divName, true, @eventItem._1, '@eventItem._2.getOrElse("#000000")')
}
}
**function deleteField(divName, i){
var parent = document.getElementById(divName);
var event = document.getElementById("e"+i);
var color = document.getElementById("c"+i);
parent.removeChild(event);
parentremoveChild(color);**
実行可能コードを作成してくださいする必要があります。 –
'delete_button.onclick = deleteField(divName、counter);'これはすぐに 'deleteField(...)'を実行し、 '.onclick'に戻り値(' undefined')を代入します。 – Andreas
「イベントや色の要素を受け入れていません」と定義してください。間違いはありますか? – Teemu