0

動的に生成されたフォームがあり、動的に生成された ID (および場合によってはクラス) があります。フォームは同じですが、関連する ID が末尾に追加されています。

の各セットを選択して、それぞれにコードを適用するにはどうすればよいですか?

switch(id_type_champ)
            {
            case 1:
                 $('#header-right-container').append(''+nom_champ+'<input type="text" id='+Id+'  >  ').trigger("create");
              break;
            case 2:
                 $('#header-right-container').append(''+nom_champ+'<input type="text" id='+Id+' > ').trigger("create");
              break;
            case 3:
                 $('#header-right-container').append(''+nom_champ+'<input type="date" id='+Id+' OnClick="aff_date(\'' + Id + '\')">').trigger("create");
              break;
            case 4:
                 $('#header-right-container').append(''+nom_champ+'<select id='+Id+'    ><option value=0></option></select>').trigger("create");

                v++;
                 break;
            case 5:
                $('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");

                v++;
              break;
            case 6:
                 $('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");

                v++;
              break;
            case 7:
                 $('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");

                v++;
              break;
            case 8:
                 $('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");

                v++;
              break;
            case 9:
                 $('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");

                v++;
              break;
            default:
                 $('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");

                v++;
             break;
            }

コードはオプションの追加を実行できます

4

2 に答える 2

0

ここに元の関数など、独自のプラグインを作成するのが理想的です。

function ListIds(var Id) {
switch(id_type_champ)
            {
            case 1:
                 $('#header-right-container').append(''+nom_champ+'<input type="text" id='+Id+'  >  ').trigger("create");
              break;
            case 2:
                 $('#header-right-container').append(''+nom_champ+'<input type="text" id='+Id+' > ').trigger("create");
              break;
            case 3:
                 $('#header-right-container').append(''+nom_champ+'<input type="date" id='+Id+' OnClick="aff_date(\'' + Id + '\')">').trigger("create");
              break;
            case 4:
                 $('#header-right-container').append(''+nom_champ+'<select id='+Id+'    ><option value=0></option></select>').trigger("create");

                v++;
                 break;
            case 5:
                $('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");

                v++;
              break;
            case 6:
                 $('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");

                v++;
              break;
            case 7:
                 $('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");

                v++;
              break;
            case 8:
                 $('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");

                v++;
              break;
            case 9:
                 $('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");

                v++;
              break;
            default:
                 $('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");

                v++;
             break;
            }

}

次に、プラグインは次のコードを呼び出します。

    (function($){  
     $.fn.listIdValue = function() {  

        return this.each(function() {  
             ListIds($(this).id)

        });  
     };  
    })(jQuery); 

次に、次のような要素または要素のリストでこの関数を呼び出すことができます。

$('#element').listIdValue();

また

$('.elementClass').listIdValue();
于 2012-11-21T08:55:34.393 に答える
0

次のようにケースを追加できます。

switch (id_type_champ) {
    case 1:
    case 2:
        $('#header-right-container').append(nom_champ + '<input type="text" id=' + Id + ' > ').trigger("create");
        break;
    case 3:
        $('#header-right-container').append(nom_champ + '<input type="date" id=' + Id + ' OnClick="aff_date(\'' + Id + '\')">').trigger("create");
        break;
    // The cases below can be removed, except dor "default"
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    // ^ These can be removed.
    default:
        $('#header-right-container').append(nom_champ + '<select id=' + Id + ' ><option value=0> </option></select> ').trigger("create");

        v++;
        break;
}

ケース 1 ~ 3 では a が作成され、ケースinput4 ~ 9 ではデフォルトで aが作成されますselect
ただし、デフォルトで処理されるため、ケース 4 ~ 9 を削除できます。

nom_champまた、空の文字列を( )の前に付ける'' + nom_champ必要はありません。nom_champ文字列へのキャストに使用されたと思いますが、'<input/select'追加された はそれを処理します。

于 2012-11-21T08:48:21.677 に答える