function confirmSubmit(id, table, do) {
event.preventDefault();
swal({
title: 'Вы действительно хотите?',
text: table+' под ID-'+id,
type: 'warning',
showCancelButton: true,
confirmButtonClass: 'btn-danger',
confirmButtonText: 'Да, хочу!',
closeOnConfirm: false,
cancelButtonText: 'Нет, не хочу!'
}
<a onclick="return confirmSubmit(25, 'текст', delete)" href="#">ссылка</a>
function confirmSubmit(id, table, do){
event.preventDefault();
swal({
title: 'Вы действительно хотите?',
text: table+' под ID-'+id,
type: 'warning',
showCancelButton: true,
confirmButtonClass: 'btn-danger',
confirmButtonText: 'Да, хочу!',
closeOnConfirm: false,
cancelButtonText: 'Нет, не хочу!'
},
function(){
$.ajax({
url: 'ajax.php',
type: 'POST',
data: 'id='+id+'&do='+do,
async: true,
dataType: 'json',
success: function(data) {
if(data.response == 'success') {
swal("Готово!", data.success, 'success');
},
cache: false,
processData: false
});
});
};
function confirmSubmit(event, id, table, doo) {
event.preventDefault();
.....
}
$('a[href="#"]').each((index, element) => {
$(element).on('click', (event) => {
confirmSubmit(event, id, table, doo);
});
});
do
нельзя использовать в имени переменной, это зарезервированное ключевое слово для цикла. <td id="129"><a onclick="confirmSubmit(129,'Удалить', 'delete')" href="#"><i class="fa fa-remove" style="color: #dc2a0b!important;" title="Удалить"></i></a><a id="off129" onclick="confirmSubmit(129,'Отключить', 'power_off')" href="#"><i class="fa fa-power-off" style="margin-left: 15px; color: #dc2a0b!important;" title="Отключить"></i></a><a id="graduates129" onclick="confirmSubmit(129,'Переместить', 'graduates')" href="#"><i class="fa fa-money" style="margin-left: 5px; color: #3c763d!important;" title="Переместить"></i></a></td>
$('a[href="#"]').each((index, element) => {
$(element).on('click', (event) => {
function confirmSubmit(event, id, table_name, todo) {
event.preventDefault();
console.log(event);
swal({
title: 'Вы действительно хотите?',
text: table_name+' под ID-'+id,
type: 'warning',
showCancelButton: true,
confirmButtonClass: 'btn-danger',
confirmButtonText: 'Да, хочу!',
closeOnConfirm: false,
cancelButtonText: 'Нет, не хочу!'
},
function(){
$.ajax({
url: 'ajaxpomet',
type: 'POST',
data: 'id='+id+'&todo='+todo,
async: true,
dataType: 'json',
success: function(data) {
if(data.response == 'success') {
swal("Готово!", data.success, 'success');
if(data.todo == 'delete')
{
// Плавное удаление записи
$('#' + id).hide('slow', function() {
$(this).remove();
});
}
else if(data.todo == 'power_off')
{
$('#off'+id).replaceWith('<a id=on'+id+' onclick=\"return confirmSubmit('+id+',\'Включить\', \'power_on\')\" href=#><i class=\"fa fa-power-off\" style=\"margin-left: 15px; color: #3c763d;\" title=Включить></i></a>');
}
else if(data.todo == 'power_on')
{
$('#on'+id).replaceWith('<a id=off'+id+' onclick=\"return confirmSubmit('+id+',\'Отключить\', \'power_off\')\" href=#><i class=\"fa fa-power-off\" style=\"margin-left: 15px; color: #dc2a0b!important\" title=Отключить></i></a>');
}
else if(data.todo == 'graduates')
{
$('#graduates'+id).replaceWith('<i class=\"fa fa-check\" style=\"margin-left: 15px; color: #3c763d!important;\" title=Перемещен></i>');
$('#off'+id).remove();
}
}else{
swal("Ошибка!", data.error, 'error');
}
},
cache: false,
processData: false
});
});
};
});
});
onclick=
из HTML-кода, а потом попробуйте так:function confirmSubmit(id, table_name, todo) {
console.log(event);
swal({
title: 'Вы действительно хотите?',
text: table_name+' под ID-'+id,
type: 'warning',
showCancelButton: true,
confirmButtonClass: 'btn-danger',
confirmButtonText: 'Да, хочу!',
closeOnConfirm: false,
cancelButtonText: 'Нет, не хочу!'
},
function(){
$.ajax({
url: 'ajaxpomet',
type: 'POST',
data: 'id='+id+'&todo='+todo,
async: true,
dataType: 'json',
success: function(data) {
if(data.response == 'success') {
swal("Готово!", data.success, 'success');
if(data.todo == 'delete')
{
// Плавное удаление записи
$('#' + id).hide('slow', function() {
$(this).remove();
});
}
else if(data.todo == 'power_off')
{
$('#off'+id).replaceWith('<a id=on'+id+' onclick=\"return confirmSubmit('+id+',\'Включить\', \'power_on\')\" href=#><i class=\"fa fa-power-off\" style=\"margin-left: 15px; color: #3c763d;\" title=Включить></i></a>');
}
else if(data.todo == 'power_on')
{
$('#on'+id).replaceWith('<a id=off'+id+' onclick=\"return confirmSubmit('+id+',\'Отключить\', \'power_off\')\" href=#><i class=\"fa fa-power-off\" style=\"margin-left: 15px; color: #dc2a0b!important\" title=Отключить></i></a>');
}
else if(data.todo == 'graduates')
{
$('#graduates'+id).replaceWith('<i class=\"fa fa-check\" style=\"margin-left: 15px; color: #3c763d!important;\" title=Перемещен></i>');
$('#off'+id).remove();
}
}else{
swal("Ошибка!", data.error, 'error');
}
},
cache: false,
processData: false
});
}
);
};
var table_nameArr = ['Удалить', 'Отключить', 'Переместить'];
var todoArr = ['delete', 'power_off', 'graduates'];
$('a[href="#"]').each((index, element) => {
var id = var id = $(element).parent().attr('id'); /* так получить id из td можно, но это не совсем правильно, хоть и будет работать */
$(element).on('click', (event) => {
event.preventDefault();
confirmSubmit(id, table_nameArr[index], todoArr[index]);
});
});
id
от родительского td
. Проверьте через console.log()
что вам в итоге приходит в функцию при клике:function confirmSubmit(event, id, table_name, todo) {
var str = id + ' - ' + table_name + ' - ' + todo;
console.log(str);
swal({
.....
<td id=129"><a "confirmSubmit(129,'Удалить', 'delete')" href="#"><i class="fa fa-remove" style="color: #dc2a0b!important;" title="Удалить"></i></a>
var id = var id = $(element).parent().attr('id');
function confirmSubmit(event, id, table_name, todo)...
event
нужно убрать из атрибутов функции:function confirmSubmit(id, table_name, todo)...
var table_nameArr = ['Удалить', 'Отключить', 'Включить', 'Переместить'];
var todoArr = ['delete', 'power_off', 'power_on', 'graduates'];
event.preventDefault();
отказывается)))event.preventDefault();
в этом коде работает без проблем. По ссылке не переходит. Не знаю в чем у вас проблема. Чтобы добавить новые элементы в массив вы делаете все верно, но нужно добавить и еще одну ссылку соответственно в HTML, чтобы их было 4 шт внутри <td>
- https://codepen.io/anon/pen/BbPLer?editors=1010#0 else if(data.todo == 'power_off')// Если отключили, меняем ссылку на включение
{
$('#off'+id).replaceWith('<a id=on'+id+' onclick=\"return confirmSubmit('+id+',\'Включить\', \'power_on\')\" href=#><i class=\"fa fa-power-off\" style=\"margin-left: 15px; color: #3c763d;\" title=Включить></i></a>');
}
else if(data.todo == 'power_on')// Если включили, меняем ссылку на отключение
{
$('#on'+id).replaceWith('<a id=off'+id+' onclick=\"return confirmSubmit('+id+',\'Отключить\', \'power_off\')\" href=#><i class=\"fa fa-power-off\" style=\"margin-left: 15px; color: #dc2a0b!important\" title=Отключить></i></a>');
}
event.preventDefault();
Я имел ввиду не работает, когда добавляю 4 ссылку в массив, а так все прекрасно return false;
и return
к ссылкам... и проблема ушла)))function confirmSubmit(id, table_name, todo) {
// мой код с ajax
return false;
}
<td id="123"><a onClick="return confirmSubmit(123, 'Удалить', 'delete')" href="#"><i class="fa fa-remove" style="color: #dc2a0b!important;" title="Удалить"></i></a>"</td>
Теперь выдает ошибку TypeError: event.preventDefault is not a function
пробовал и просто e передавать
<button onclick="confirmSubmit(event, id, table, do)" >Нажми</button>
<a onclick="confirmSubmit(event, 25, 'текст', 'delete')" href="/asdasd/asdasd">ссылка</a>
<script>
function confirmSubmit(event, id, table, doIt) {
event.preventDefault();
console.log(event);
}
</script>
<a onclick="confirmSubmit('event', 126,'Удалить', 'delete')" href="#"><i class="fa fa-remove" style="color: #dc2a0b!important;" title="Удалить"></i></a>
function confirmSubmit(event, id, table_name, todo) {
event.preventDefault();
console.log(event);
swal({
title: 'Вы действительно хотите?',
text: table_name+' под ID-'+id,
type: 'warning',
showCancelButton: true,
confirmButtonClass: 'btn-danger',
confirmButtonText: 'Да, хочу!',
closeOnConfirm: false,
cancelButtonText: 'Нет, не хочу!'
},
function(){
$.ajax({
url: 'ajax.php',
type: 'POST',
data: 'id='+id+'&todo='+todo,
async: true,
dataType: 'json',
success: function(data) {
if(data.response == 'success') {
swal("Готово!", data.success, 'success');
if(data.todo == 'delete')
{
// Плавное удаление записи
$('#' + id).hide('slow', function() {
$(this).remove();
});
}
}else{
//alert('Ошибка:' + data.error);
swal("Ошибка!", data.error, 'error');
}
},
cache: false,
processData: false
});
});
};