jquery.addInputArea

Latest: v4.9.0 (2017-05-03)

Demo
https://sutara79.github.io/jquery.add-input-area/

GitHub
https://github.com/sutara79/jquery.add-input-area





入力欄を動的に増減させることができます。
テキストボックス、テキストエリアの両方に対応しています。


ライセンス
MITライセンス (http://www.opensource.org/licenses/mit-license.php)
※改変、再配布はご自由にどうぞ。


使用にあたっての注意点


  • 増減する入力欄には、下記のようにCSSクラスを指定する必要があります。

    要素の種類は問いません。

    li でも tr でもOKです。

    また、子孫関係も、直下に置く必要はありません。


    <* id="hoge">
    <* class="hoge_var"(この要素が増減する)>
    <input name="hoge_0">
    <* class="hoge_del"(削除ボタン)>
    <* class="hoge_add"(追加ボタン。リストの外に置く。)>


    【例】
    <ul id="list1">
    <li class="list1_var">
    <input type="text" name="list1_0">
    <button class="list1_del">削除<button>
    </li>
    </ul>
    <button class="list1_add">追加</button>


  • 入力欄のname, id属性は(任意の文字列) + (番号)の形式で記述して下さい。

    番号は必ずゼロから始めて下さい。

    "任意の文字列"の末尾は、当然、数字で終わってはいけません。

    アンダースコア"_"を挟んだりして対処して下さい。

    例: list2_0


    ただし、独自属性の'data-name-format', 'data-id-format'を設定することで柔軟なname, id属性を名付けられます。

    CakePHPのname属性の形式などに対応できます。 (data[posts][mail][0] など)

    <label data-id-format="hoge_%d_fuga" for="hoge_0_fuga">
    <input data-id-format="hoge_%d_fuga" id="hoge_0_fuga" data-name-format="hoge_%d_fuga" name="hoge_0_fuga">

    ※ 以降、hoge_1_fuga, hoge_2_fuga... と名付けられる。


  • id, for属性は"data-id-format"属性、name属性は"data-name-format"属性に従って連番を与えられます。

    独自属性の"data-id-format", "data-name-format"を使わない場合は、共通の命名規則(任意の文字列) + (番号)に従ってください。

  • プラグインは、リスト項目内でname属性を持つ要素のname属性とid属性、そして、for属性を持つ要素のfor属性を書き換えます。

    input要素だけでなく、どんな要素に対しても実行するので、注意して下さい。


オプション

各オプションの名前をクリックすると、使用例のページへジャンプします。

名前 初期値 説明
area_var string '.(id)_var' 増減する要素のCSSクラス名
btn_add string '.(id)_add' 追加ボタンのCSSクラス名
btn_del string '.(id)_del' 削除ボタンのCSSクラス名
area_del string (btn_del) 削除ボタンを包む要素のCSSクラス名
after_add function null 追加後に実行される関数
clone_event boolean true JavaScriptイベントをコピーするかどうか
maximum number 0 最大数。"0"は無制限を表す