Неполное Выполнение Обратных вызовов на jQuery POST

У меня есть 2 js метода, которые делают сообщение Ajax к серверу и отображают результаты соответственно.

1) Удалите - Удаляют после обратного вызова, 'скрывает' удаленный элемент и не делает обновления страница

function DeleteRule(ruleId) {

    var deleteRuleAction = $('#delete-rule-action').val();

    $.post(deleteRuleAction, { ruleId: ruleId }, function(data) {
      if (data.Status == 'Success') {
        alert(data.Messages[0]);
        $('#rule-details-' + ruleId).fadeOut(500);
        $('#div-rule-button-' + ruleId).fadeOut(500);
        activeRuleId = null;
      }
      else
          alert(data.Messages[0]);
    }, 'json');
}

2) Сохраните - Сохраняют после обратного вызова, должен обновить страницу для показа недавно добавленного элемента наряду с существующими элементами

function SaveRule() { 

    var ruleId = $('#rule-id').val();   
    var saveOrUpdateRuleAction  = $('#add-or-edit-rule-action').val();

    $.post(saveOrUpdateRuleAction, { ruleId: ruleId }, function(data) {
        if (data.Status == 'Success') {
            alert(data.Messages[0]);
            location.reload(true);  
// This is supposed to reload the page after saving the element. 
// But the page gets reloaded without display the alert on the previous line.
        }
        else
            alert(data.Messages[0]);
    }, 'json');
}

Я вызываю эту функцию Сохранения как:

<button type="submit" onclick="javascript:Save()">

Проблема: функция обратного вызова в Сохранении не становится зашедшей, все и страница обновляются автоматически. Во время вызова Ajax объект, который должен был быть сохранен, сохраняется к базе данных. Но, код в функции обратного вызова не становится выполняемым.

Мне предложили следующий взлом, чтобы заставить его работать

<button type="submit" onclick="javascript:Save(); return false;">

Мне сказали, что 'возвращают false'; останавливает страницу от автоматической перезагрузки. Однако это не имеет смысла начиная с моего Удалять, который не должен быть перезагружен, не имеет этого взлома, чтобы мешать ему перезагрузить.

После использования FireBug Удалите, показал успешный POST и возврат данных JSON. Однако Сохраните (без взлома), показал 'аварийное прекращение работы'

1
задан Sarath Chandra 24 December 2015 в 10:25
поделиться