0

beforeSubmit編集オプションに機能があります。関数のコードは以下のようなものです

beforeSubmit: function (postdata, formid) {
    var myGrid = $('#list'),
    selRowId = myGrid.jqGrid('getGridParam', 'selrow'),
    IsIssued = myGrid.jqGrid('getCell', selRowId, 'Status');
    alert(IsIssued);
    if (IsIssued == true)
        return [false,"lll"];
    else
        return [true,"ll"];
}

しかし問題は、これが常にフォームを送信することです。私が望むのは if (IsIssued==true)、フォームを送信しないでエラーを返すことです。それ以外の場合は、フォームを送信してください。正確な値をIsIssued正常に取得しています。

4

2 に答える 2

0

afterShowForm 関数を使用して EditForm を非表示にしました

afterShowForm: function ()
{
var myGrid = $('#list'),
selRowId = myGrid.jqGrid('getGridParam', 'selrow'),
IsIssued = myGrid.jqGrid('getCell', selRowId, 'Status');
if (IsIssued == 'true') {

$.jgrid.hideModal("#editmodlist");
alert("This Book Is Already Issued");
return [true];
 }
else {
return [true];
}
return [true];
}
于 2013-11-13T11:43:19.003 に答える
0

最善の解決策は、ボタンを押してクリックイベントをキャッチし、デフォルトのアクションを防止し、成功条件でフォームを送信することです。

$('#yourButton').click(function(event)){
     event.preventDefault();
         //$.ajax({
             beforeSubmit: function (postdata, formid){
                var myGrid = $('#list'),
                selRowId = myGrid.jqGrid('getGridParam', 'selrow'),
                IsIssued = myGrid.jqGrid('getCell', selRowId, 'Status');
                alert(IsIssued);
                if (IsIssued == true)
                    $('yourForm').submit();
                    return [false,"lll"];
                else
                   //Else you already prevented default action
                   return [true,"ll"];
           }
        //)};
     });
于 2013-11-13T05:19:34.920 に答える