2014-08-28 2 views
0

У меня есть jqGrid, который, когда пользователь редактирует строку, им нужно нажать кнопку, чтобы применить изменения. Эта кнопка должна создать диалоговое окно, которое должно вызывать вызов ajax с выбранной опцией.Диалоговое окно Javascript не открывается

Однако диалоговое окно никогда не открывается. Firebug остановится на контрольных точках внутри функции, которая ее создает, но никогда не делает того, что она должна.

function confirm_dialog(rowData){ 
    $("#dialog").dialog({ 
     modal:true, 
     buttons: { 
      "Yes": function(){ 
       ajax_call(rowData, "yes"); 
       $(this).dialog("close"); 
      }, 
      "No": function(){ 
       ajax_call(rowData, "no"); 
       $(this).dialog("close"); 
      }, 
      "Cancel": function(){ 
       $(this).dialog("close"); 
      } 
     } 
    }); 
} 

function ajax_call(rowData, option){ 
    $.ajax({ 
     url: '{{django_base}}', 
     data: {'data':rowData, 'option':option}, 
     type: 'POST', 
     error: function(){ 
      window.alert("There was an error!"); 
     }, 
     success: function(){ 
      window.alert("Changes made successfully!"); 
     } 
    }); 
} 

$(function(){ 
    //... 
    baseGrid = new BaseGrid("#the-jqGrid", opts); 
    //...setting grid format 
    baseGrid.addButton("edit", 
     { caption:'Confirm Changes', onClickButton:confirm_dialog() }); 
} 

Я установил точку останова в начале confirm_dialog и ajax_call. Он попадет на разрыв confirm_dialog во время загрузки страницы, но не при нажатии кнопки. Разрыв в ajax_call никогда не достигается.

ответ

0

Если это ваш код продукции, то вы пропустили запятую:

function ajax_call(rowData, option){ 
$.ajax({ 
    url: '{{django_base}}', 
    data: {'data':rowData, 'option':option}, 
    type: 'POST', 
    error: function(){ 
     window.alert("There was an error!"); 
    }, **<-------missed comma** 
    success: function(){ 
     window.alert("Changes made successfully!"); 
    } 
}); 
} 

EDIT Я сделал скрипку http://jsfiddle.net/94cfma4m/ Я думаю, что все в порядке с самим кодом, может быть источником ROWDATA является недействительным?

+0

Просто ошибка копирования, она находится в производственном коде. – SirDeimos

Смежные вопросы