2017-01-14 10 views
0

editrules custom_funcとrequired = falseを設定すると、custom_funcはユーザーが値を入力した場合にのみ機能します。つまり、ユーザーが入力を空のままにしておくと、custom_funcはjqgridによってスキップされます。 私の場合、同じ行の他のユーザー値に応じて、フィールド値が空であるかどうかを検証する必要があります。したがって、私はsubmit後に検証する必要があるので、colmodelでrequired = falseを設定することはできません。jqgrid editoptions custom_func with required = false

colmodel: [ 
    {name:'xxx', editrules: { 
    required:false, 
    custom:true, 
    custom_func: function(value) { 
     if(othercolumn=='blah' && value=='') { 
      //this is error 
     } else { 
      //this is correct 
     } 
    } 
    }} 
] 

EDIT:私はjqGrid 4.6.0を使用しています(私はまだ別の支店で無料4.13.6をテストしてい)

この

は、その内容に注意を払っていない、擬似custom_funcです

答えて

1

まず、あなたがあなたのコードの間違った特性を投稿したと思います。私はrequired,customおよびcustom_funceditrulesの中に入れ、editoptionsthe documentation参照)の中には指定しないと思います。

秒あなたは常には、(使用することができます)あなたが使用jqGridのバージョンに関する情報が含まれ、そしてjqGrid(free jqGrid、商用Guriddo jqGrid JSまたはバージョン< = 4.7の古いjqGrid)のフォークについての必要があります。異なるバージョンの可能性とjqGridの異なるフォークはと異なるです。

requiredプロパティを列に指定しないか、required: undefiledを使用する必要があります。 の場合にのみの使用がrequired: trueの場合、検証は空の値で停止されます。 を明示的にrequired: falseと指定すると、custom_funcは空の値で呼び出されません。 truefalseの値がrequiredの場合、カスタム検証を行うことができます。

次の問題は、別の列の値にアクセスしてカスタム検証を行う必要があることです。それは別の質問の一部でなければならない。使用するjqGridのフォーク、jqGridのバージョン、編集モード(インライン編集、フォーム編集、セル編集)を知っておくことが重要です。

+0

はい、editrules(編集済み)、jqGrid 4.6.0 そうです、私はjqgridラッパーを持っています。だから私はデフォルトの属性を削除していたので、任意の値でcustom_funcを使うことができます。ありがとうございました! – Aberel

+0

@アベレル:ようこそ! – Oleg

+0

最後の問題について:「別の入力列の値を取得する」、私は新しい質問を投稿します。 – Aberel

関連する問題