1

誰かが興味を持っている場合に備えて、初期条件のコードを追加しました。このコードを Country datainit に配置しました。

    setTimeout(function ()
                            {
                                var required = $(elem).val() === 'US';
                                grid.jqGrid('setColProp', 'PostalCode', { editrules: { required: required} });
                                $('#PostalCode').siblings('.mystar').html(required ? '*' : ' ');
                            }, 100);

(JQGrid の新しいリリースでは setTimeout が不要になることは理解していますが、アップグレードに問題があります。)


formedit 列の elmprefix を動的に設定する必要があります。米国の場合、郵便番号が必要です。必要な要素は機能していますが、elmprefix が表示されません。

dataEvents: [
    {
        type: "change",
        fn: function (e) {
            changeStateSelect($(e.target).val(), e.target);
            var isUS = $(e.target).val() == 'US';
            grid.jqGrid('setColProp', 'PostalCode', { editrules: { required: isUS },
                formoptions: { elmprefix: (isUS ? "<font color='red'>*</font>" : " ")}
            });
        } 
    },
    {
        type: "keyup",
        fn: function (e) { $(e.target).trigger('change'); }
    }
]

これを達成する方法はありますか?

4

1 に答える 1

0

のオプションformoptions.elmprefixとその他のプロパティは、編集フォームが作成されるformoptionsに使用されます。コールバックまたはイベントを使用して、フォームが作成される前にデータを変更できます。beforeInitDatajqGridAddEditBeforeInitData

アスタリスクを動的に表示/非表示にする必要がある場合は、対応する要素を手動で非表示にすることができます。たとえば、次のように定義できelmprefixます

elmprefix: "<span class='mystar' style='color:red'>*</span>"

簡単に見つけて変更できるようにします。次に、使用できます

$("#PostalCode").siblings(".mystar").html($(e.target).val() === 'US' ? "*" : "&nbsp;");

changeの代わりにハンドラ内grid.jqGrid('setColProp', 'PostalCode', ...);

于 2013-01-17T20:06:23.863 に答える