Подтвердить что ты не робот

Как отменить выбор выбранной строки из jQgrid, когда значение поля текстового поля форматирования пустое

Когда я попытался установить флажок в jQgrid, он выберет значения, которые являются точными, и в этом случае у меня есть собственное текстовое поле форматирования без ввода значений в текстовом поле и попытался установить флажок. Я покажу предупреждение после этого я сниму флажок, но фокус не будет удален из сетки.

Я приложил скриншот, пожалуйста, дайте мне знать ответ.

код вставляется здесь:

    jQuery("#list1").jqGrid({               

        url:actionurl,
        mtype: 'POST',          
        colNames:['PartnerId', 'Employee No','Employee Name' ,'Position', 'Position Id', 'Wages','Relieve Date','Days Required'],
        colModel:[                    
                      {name:'partnerId',index:'partnerId', width:280,sortable:true,search:false, hidden: true},
                      {name:'em_ka003_employeeno',index:'em_ka003_employeeno', width:200,sortable:true},
                      {name:'empname',index:'empname', width:280,sortable:false,search:false},
                      {name:'position',index:'position', width:250,sortable:false,search:false},
                      {name:'positionId',index:'positionId', width:0,sortable:false,search:false,hidden:true},                    
                      {name:'wages',index:'wages', width:100,sortable:false,search:false},                        
                      {name:'emp_relievedate',index:'emp_relievedate', width:200,sortable:false,search:false},
                      {name:'daysrequired',index:'daysrequired', width:140,sortable:false,search:false,formatter:createText},
                ],

        rowNum:10,
        rowList:[5,10,15],
        pager: '#pager1',         
        sortorder: "asc",
        sortname: 'em_ka003_employeeno', 
        viewrecords: true,
        rownumbers: true,
        loadonce: false,
        forceFit: true,
        datatype: 'xml',
        multiselect: true , 
        footerrow:true,
        userDataOnFooter:true,
        onSelectRow: function(rowId)
            { 
                handleSelectedRow(rowId); 
            },
        caption: "<b>Labor Extension",
        gridComplete: function() {          

            $.unblockUI();
        }



});

Это моя пользовательская функция форматирования:

function createText(el, cellval, opts)
    {
         return "<span><input class='dojoValidateValid required TextBox_OneCell_width number' type='text' id='days_req"+cellval.rowId+"' name='days_req"+cellval.rowId+"'  onKeyPress='return checkIt(event,false)'/></span>";

    }

function handleSelectedRow(id) 
{

var jqgcell     = jQuery('#list1').getCell(id, 'partnerId');
var daysrequired = jQuery("#days_req"+id+"").val();
var cbIsChecked = (jQuery("#jqg_list1_"+jqgcell).attr('checked'));

if(cbIsChecked==true)
 {

    /* Append the Days Required */


if(daysrequired=="")
    {

        alert("please enter the extension days");
        jQuery("#days_req"+id+"").focus();
        jQuery("#jqg_list1_"+jqgcell).attr('checked', false);
          jQuery('#list1').restoreRow(id);

        return false;
    }



 }

In first screen shot if the user if selecting the check box without entering the value in textbox it shows alert.In second screen shot the focus is not get removed.

4b9b3361

Ответ 1

Я получил ответ.

Если значение текстового поля равно нулю при выборе конкретной строки в jqgrid в это время, проверьте это с помощью javascript и снимите выделенную строку из сетки.

Вот рабочий код i, вставленный ниже:

if(daysrequired=="0")
    {
        myGrid.jqGrid('resetSelection');
    }
  • myGrid - мой идентификатор сетки.
  • resetSelection - это метод в jQGrid, чтобы отменить выбор выбранных строк.