フォームのテキスト フィールドとラベルを動的に追加または削除する

ヤペテ

ここで、フォーム テキスト フィールドを動的に追加するコードを見つけました。ただし、テキスト フィールドにラベルを追加する必要があり、新しいテキスト フィールドが追加されるたびに、ラベルの値も変更されます (たとえば、1 ずつ増分します)。ラベルを追加できましたが、主な問題は次のとおりです。1. 新しいフィールドとラベルが追加されるたびにラベルを 1 つずつ増やす方法 2. テキスト フィールドが削除されたときにラベルも削除できるようにする。私は Javascript を初めて使用するため、詳細な説明を歓迎します。

JavaScript コード:

    <script type="text/javascript">
    $(document).ready(function(){
        var maxField = 10; //Input fields increment limitation
        var addButton = $('.add_button'); //Add button selector
        var wrapper = $('.field_wrapper'); //Input field wrapper
        var y = 2;
        var labelHTML = '<label for="inputEmail3" class="col-md-4 control-label">'+ $y + '</label>';
        var fieldHTML = '<div class="col-md-6"><input type="text" name="field_name[]" value=""/><a href="javascript:void(0);" class="remove_button" title="Remove field"><img src="remove-icon.png"/></a></div>'; //New input field html 
        var x = 1; //Initial field counter is 1
        $(addButton).click(function(){ //Once add button is clicked
            if(x < maxField){ //Check maximum number of input fields
                x++; //Increment field counter
                $(wrapper).append(labelHTML, fieldHTML); // Add field html
                y++;
            }
        });
        $(wrapper).on('click', '.remove_button', function(e){ //Once remove button is clicked
            e.preventDefault();
            $(this).parent('div').remove(); //Remove field html
            x--; //Decrement field counter
        });
    });
    </script>

HTML コード:

    <fieldset>
        <legend>Question Options:</legend>
        <div class="field_wrapper form-group">
            <label for="inputEmail3" class="col-md-4 control-label">1</label>
            <div class="col-md-6">
                <input type="text" name="field_name[]" value=""/>
                <a href="javascript:void(0);" class="add_button" title="Add field"><img src="add-icon.png"/></a>
            </div>
        </div>
    </fieldset>
ブレントグラウンド

まず最初に、add 関数内で HTML を定義して、それらを互いに一意にする必要があります。

次にlabel、入力フィールドとその親 divを削除する前に、 を削除する必要があります。

$(document).ready(function(){
        var maxField = 10; //Input fields increment limitation
        var addButton = $('.add_button'); //Add button selector
        var wrapper = $('.field_wrapper'); //Input field wrapper
        var y = 2;
        var x = 1; //Initial field counter is 1
        
        var labelHTML = "";
        var fieldHTML = "";
        
        $(addButton).click(function(){ //Once add button is clicked
            if(x < maxField){ //Check maximum number of input fields
                labelHTML = '<label for="inputEmail' + x + '" class="col-md-4 control-label">'+ 'test' + '</label>';
                fieldHTML = '<div class="col-md-6"><input id="inputEmail' + x + '" type="text" name="field_name[]" value=""/><a href="javascript:void(0);" class="remove_button" title="Remove field"><img src="remove-icon.png"/></a></div>'; //New input field html 
            
                x++; //Increment field counter
                $(wrapper).append(labelHTML, fieldHTML); // Add field html
                y++;
            }
        });
        $(wrapper).on('click', '.remove_button', function(e){ //Once remove button is clicked
            e.preventDefault();
            $(this).parent('div').prev().remove(); //Remove previous field html
            $(this).parent('div').remove(); //Remove field html
            x--; //Decrement field counter
        });
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<fieldset>
    <legend>Question Options:</legend>
    <div class="field_wrapper form-group">
        <label for="inputEmail" class="col-md-4 control-label">1</label>
        <div class="col-md-6">
            <input id="inputEmail" type="text" name="field_name[]" value=""/>
            <a href="javascript:void(0);" class="add_button" title="Add field"><img src="add-icon.png"/></a>
        </div>
    </div>
</fieldset>

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

テキスト フィールドを動的に追加または削除し、単一の行に挿入します

分類Dev

動的に追加されたテキストフィールドIOSを削除する

分類Dev

Deviseフォームには、テキストフィールドごとにラベルが必要ですか?

分類Dev

Woocommerceログインフォームのフィールドラベルテキストを変更する

分類Dev

Symfony3.1.1フォームの入力テキストフィールドにマスクを追加します

分類Dev

テキストフィールドへのフォーム送信

分類Dev

テキストフィールドのAngularJSフォーム

分類Dev

ルーターにコントローラーを自動的に追加する(ルーティングの必要性をなくす)ことは、セキュリティまたはパフォーマンスの問題ですか?

分類Dev

フォームフィールドにあるテキストの最後で「Enter」を押した後、「、」を追加すると、カーソルが次の行に移動しませんでしたか?

分類Dev

jQueryは、フォーム送信時にリストするテキストフィールドの値を追加します

分類Dev

受信したメッセージごとに返信フォームのテキストフィールドを追加します

分類Dev

フォームフィールド(デフォルトのテキスト)+その他のテキスト

分類Dev

Symfony2-ネストされたフォームのサブフォームにフィールドを追加または削除します

分類Dev

更新するXamarinフォームのテキストフィールドにデータベースから登録されたデータを表示する方法

分類Dev

ネストされたフォームフィールドを現在のフォームに動的に追加するにはどうすればよいですか?

分類Dev

ボタンをクリックすると、プログラムでテキストフィールドにフォーカスが移動します

分類Dev

xcodeに動的ラベルとテキスト入力フィールドを追加するにはどうすればよいですか?

分類Dev

フォームのテキストラベルをターゲットにする方法は?

分類Dev

DrupalWebフォームで2つのテキストフィールドを別のテキストフィールドにコピーして連結する

分類Dev

Djangoクリスピーフォーム-複数のフィールドにラベルテキストを設定します

分類Dev

ラベルとテキストフィールドの間のスペースを削除するにはどうすればよいですか

分類Dev

フォーム-入力フィールドのテキストが削除された場合でも、ユーザーは[送信]をクリックできます

分類Dev

フラッターテキストフォームフィールドで入力テキストの色を黒から白に変更する方法

分類Dev

Railsは動的にネストされた形式(2レベル)で別の入力フィールドを追加することはできません

分類Dev

iOS 13ダークモードでは、テキストフィールド内のラベルとテキストが自動的に白になります

分類Dev

iOS 13ダークモードでは、テキストフィールド内のラベルとテキストが自動的に白になります

分類Dev

アクティブストレージ:フォームが再表示されるときにアップロードされたファイルを保持/キャッシュするためのベストプラクティス

分類Dev

動的に追加されたフィールドを削除する

分類Dev

Androidフォーム:フォーカスされたテキストフィールドIDを取得します

Related 関連記事

  1. 1

    テキスト フィールドを動的に追加または削除し、単一の行に挿入します

  2. 2

    動的に追加されたテキストフィールドIOSを削除する

  3. 3

    Deviseフォームには、テキストフィールドごとにラベルが必要ですか?

  4. 4

    Woocommerceログインフォームのフィールドラベルテキストを変更する

  5. 5

    Symfony3.1.1フォームの入力テキストフィールドにマスクを追加します

  6. 6

    テキストフィールドへのフォーム送信

  7. 7

    テキストフィールドのAngularJSフォーム

  8. 8

    ルーターにコントローラーを自動的に追加する(ルーティングの必要性をなくす)ことは、セキュリティまたはパフォーマンスの問題ですか?

  9. 9

    フォームフィールドにあるテキストの最後で「Enter」を押した後、「、」を追加すると、カーソルが次の行に移動しませんでしたか?

  10. 10

    jQueryは、フォーム送信時にリストするテキストフィールドの値を追加します

  11. 11

    受信したメッセージごとに返信フォームのテキストフィールドを追加します

  12. 12

    フォームフィールド(デフォルトのテキスト)+その他のテキスト

  13. 13

    Symfony2-ネストされたフォームのサブフォームにフィールドを追加または削除します

  14. 14

    更新するXamarinフォームのテキストフィールドにデータベースから登録されたデータを表示する方法

  15. 15

    ネストされたフォームフィールドを現在のフォームに動的に追加するにはどうすればよいですか?

  16. 16

    ボタンをクリックすると、プログラムでテキストフィールドにフォーカスが移動します

  17. 17

    xcodeに動的ラベルとテキスト入力フィールドを追加するにはどうすればよいですか?

  18. 18

    フォームのテキストラベルをターゲットにする方法は?

  19. 19

    DrupalWebフォームで2つのテキストフィールドを別のテキストフィールドにコピーして連結する

  20. 20

    Djangoクリスピーフォーム-複数のフィールドにラベルテキストを設定します

  21. 21

    ラベルとテキストフィールドの間のスペースを削除するにはどうすればよいですか

  22. 22

    フォーム-入力フィールドのテキストが削除された場合でも、ユーザーは[送信]をクリックできます

  23. 23

    フラッターテキストフォームフィールドで入力テキストの色を黒から白に変更する方法

  24. 24

    Railsは動的にネストされた形式(2レベル)で別の入力フィールドを追加することはできません

  25. 25

    iOS 13ダークモードでは、テキストフィールド内のラベルとテキストが自動的に白になります

  26. 26

    iOS 13ダークモードでは、テキストフィールド内のラベルとテキストが自動的に白になります

  27. 27

    アクティブストレージ:フォームが再表示されるときにアップロードされたファイルを保持/キャッシュするためのベストプラクティス

  28. 28

    動的に追加されたフィールドを削除する

  29. 29

    Androidフォーム:フォーカスされたテキストフィールドIDを取得します

ホットタグ

アーカイブ