私はJavaScriptに慣れていませんが、このコードは私が探していたコードに似ていました。ここでJavscript機能は次のとおりです。ここでJavaScriptを使用してフィールドを追加/削除する機能
//Add more fields dynamically.
function addField(field,area,limit) {
if(!document.getElementById) return; //Prevent older browsers from getting any further.
var field_area = document.getElementById(area);
var all_inputs = field_area.getElementsByTagName("input"); //Get all the input fields in the given area.
//Find the count of the last element of the list. It will be in the format '<field><number>'. If the
// field given in the argument is 'friend_' the last id will be 'friend_4'.
var last_item = all_inputs.length - 1;
var last = all_inputs[last_item].id;
var count = Number(last.split("_")[1]) + 1;
//If the maximum number of elements have been reached, exit the function.
// If the given limit is lower than 0, infinite number of fields can be created.
if(count > limit && limit > 0) return;
if(document.createElement) { //W3C Dom method.
var li = document.createElement("li");
var input = document.createElement("input");
input.id = field+count;
input.name = field+count;
input.type = "text"; //Type of field - can be any valid input type like text,file,checkbox etc.
li.appendChild(input);
field_area.appendChild(li);
} else { //Older Method
field_area.innerHTML += "<li><input name='"+(field+count)+"' id='"+(field+count)+"' type='text' /></li>";
}
}
は、フォームのHTMLです:
<form name="frm" method="POST">
<strong>Neutral List</strong><br />
<ol id="neutrals_area">
<li><input type="text" name="neutral_1" id="neutral_1" /> <a style="cursor:pointer;color:blue;" onclick="this.parentNode.parentNode.removeChild(this.parentNode);">Remove Field</a></li>
<li><input type="text" name="neutral_2" id="neutral_2" /> <a style="cursor:pointer;color:blue;" onclick="this.parentNode.parentNode.removeChild(this.parentNode);">Remove Field</a></li>
<li><input type="text" name="neutral_3" id="neutral_3" /> <a style="cursor:pointer;color:blue;" onclick="this.parentNode.parentNode.removeChild(this.parentNode);">Remove Field</a></li>
<li><input type="text" name="neutral_4" id="neutral_4" /> <a style="cursor:pointer;color:blue;" onclick="this.parentNode.parentNode.removeChild(this.parentNode);">Remove Field</a></li>
<li><input type="text" name="neutral_5" id="neutral_5" /> <a style="cursor:pointer;color:blue;" onclick="this.parentNode.parentNode.removeChild(this.parentNode);">Remove Field</a></li>
</ol>
<input type="button" value="Add Neutral Field" onclick="addField('neutrals_area','neutral_',0);" />
</form>
しかし、私はものだけでなく、「リンクを削除」コードを生成するために、追加のフィールドを希望しますスクリプト内のコードで私はカスタム機能がその動作を含むように調整されなければならないが、その機能を動作させるためにあらゆる種類の問題を抱えていることを理解している。それは読むために、コードを編集してなaddField機能の下部にある「他{}」次の古い方法でそれを行うには簡単なようだ:
} else { //Older Method
field_area.innerHTML += "<li><input name='"+(field+count)+"' id='"+(field+count)+"' type='text' /><a style="cursor:pointer;color:blue;" onclick="this.parentNode.parentNode.removeChild(this.parentNode);">Remove Field</a></li>";
}
をしかし、私はそれを含める方法に関して、困惑しますW3C DOMメソッドで?
ありがとうございます。私はこれを試してみましょう。これは簡単に見えます。私がやっていることの核心を理解すると、もっと複雑にしたいと思っています。具体的には、必要に応じてグループとして追加または削除できる3つのフィールドのグループ(車種、エンジンタイプ、年式など) –
スタイル属性を忘れてしまった:-) http://jsfiddle.netで修正済み/ wtX7Y/ – Bergi
学習目的のために、私は手作りのプレーンjsソリューションに同意しますが、制作のためには、きれいで軽量で十分にテストされたライブラリに頼らない理由がわかりません。 – kappa