colModelには、custom_func: myFunc()
があります。これは、jqGridネイティブのAddまたはEditモーダルフォームのテキストフィールドに入力された整数値が、グリッド内に表示されているいくつかの行ですでに使用されていないかどうかをテストします(loadonce:true
)。モーダルフォームの[送信]ボタンをクリックするまで、custom_func:
の方法は実行されませんが、フォーカスアウト(またはぼかし)のときにモーダルフォームのテキストフィールドをテストしたいと思います。これを行う方法はありますか?私はafterShowForm:
オプションでそれを表示しようとしましたが、それは動作しますが、エラーメッセージと停止は、送信ボタンがクリックされたときと同じではなく、custom_func: myFunc()
からフォーカスアウト/ブラーを行う方法はありますか?jqGrid custom_funcのモーダルフォームでテキストフィールドにfocusoutを使用するには?
次に、colModelスニペットのあとにカスタム関数とそれに続く私の試みで、modoutフォームのafterFormShow: function()
でfocusoutを使用しようとしています。
//colModel
...},
{name: 'ezyid', index: 'ezyid', width: 60, align: "center", editable: true,
formoptions: { rowpos: 1,
colpos: 1,
label: "Ezy ID",
elmprefix: "(*) "
},
editrules: {
custom: true,
custom_func: chkDuplicateEzyids, //custom function
required: true
}
},
colModelカスタム関数:
function chkDuplicateEzyids(value, colname) {
var isFound = false;
var rows = grid.jqGrid('getRowData');
for (var i = 0; i < rows.length; i++) {
var row = rows[i];
if (value == row.ezyid && value != '') { isFound = true };
}
if(isFound){
return [false, "This Ezy ID is in use, please enter another or press Cancel."];
} else {
return [true, ""];
}
}
マイそれが持っていた場合は、編集中に同様の使用であろう(モーダルフォームのオプションを追加する
afterShowForm:
オプションからアクセスするカスタム関数を使用するのに理想的な試み未満すぐにではなく、他のすべての中で入力することよりも、テキストフィールドの値をテストするために)私はfocusout使用(またはぼかしたいのですが、要約すると
addSettings = {
recreateForm: true,
jqModal: false,
reloadAfterSubmit: false,
closeOnEscape: true,
closeAfterAdd: true,
afterShowForm: function ($form) {
var form = $form.parent()[0];
$("#ezyid", form).blur(function() { //or focusout() if better
var resp = chkDuplicateEzyids($(this).val(), 'Ezy ID');
if (!resp[0]) {
$("#FormError", form).show();
$(".ui-state-error", form).html(resp[1]);
}
});
$("#lui_" + grid[0].id).hide();
},
onclickSubmit: onclickSubmitLocal
},
:この方法を)行うことにします送信ボタンに到達するフォームの値は、値がすでに使用中であることを検出するためにのみ使用されます。これは一般的な習慣のようですが、私はこの文脈でそれを理解することはできません。多くのTIA。
ありがとう@Olegは、今私が望むように動作します。これらのクライアント側のコンセプトの中には、学習曲線が険しいものがあります。答えを見つけるのに十分なグレーの領域を少し残しておき、理解がより良いとわかった場合は好きです。私はかなりの間、従来のASPと.NETのサーバー側のアプリケーションを開発しましたが、このクライアントのUIスクリプティングの考え方をやり直す必要があります。私は明日私の問題を解決したコードを投稿します。再度、感謝します。 –
パースのジェリー:私はあなたを助けることができてうれしいです。どういたしまして!私はC/C++やC#のようなもっと古典的な言語の使用の後にJavaScriptを使い始めたので、3年前に同じ問題を抱えていました。だから私はあなたの問題をよく理解しています。 – Oleg