jQuery: модальный диалог с if else

Дорогой все, мне нужно объединить два разных результата в одном скрипте. Проблема такова:

если #edit clicked -> show dialog -> click button #ok внутри диалога, то выполните функцию:

if($('#user').val() !== "admin" || $('#password').val() !== "qaubuntu") {
                  alert('Invalid login');
                  return false;
                  } else {
                            $('#dialog').dialog('close');
                            $('#tabs').show();
                            $('#editdata').show();
                            return false;
                            }

если #del нажал -> показать диалог -> нажать кнопку #ok внутри диалогового окна, тогда выполните функцию:

if($('#user').val() !== "admin" || $('#password').val() !== "qaubuntu") {
                      alert('Invalid login');
                      return false;
                      } else {
                                $('#dialog').dialog('close');
                                $('#tabs').show();
                                $('#deletedata').show();
                                return false;
                                }

можешь показать мне, как мне это сделать?

2 ответа

Решение

Используйте класс для ссылок ex- "openDialog"

 var flag="";
 $(".openDialog").click(function () { 
 flag=$(this).attr('id');
 //now call show dialog here.....
 });

внутри кнопки ОК проверьте флаг

if($('#user').val() !== "admin" || $('#password').val() !== "qaubuntu") {
              alert('Invalid login');
              return false;
              } else {
                        $('#dialog').dialog('close');
                        $('#tabs').show();
                        //------------------
                          if(flag=='edit')
                             $('#editdata').show();
                          else if(flag=='del')
                             $('#editdata').show();
                        //-------------------
                        return false;
                        }

Вероятно, я бы связал событие click с селектором класса или типа, а не с id, и использовал бы класс для различения элементов, по которым щелкнули.

например

if($(this).hasClass("edit")){
    $('#editdata').show();
    return false;
}else{
    $('#deletedata').show();
    return false;
}

Вы также можете переместить удаленные данные / редактировать функции отображения данных в отдельную функцию с параметром, который помечает, какую из них показывать.

например

function showDialogue(isEdit){
    if(isEdit === true){
            $('#editdata').show();
            return false;
    }else{
            $('#deletedata').show();
            return false;
    }
};
Другие вопросы по тегам