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;
}
};