Pregunta

No puedo ocultar un modal después de confirmar una eliminación (cerrar funciona bien), por lo que ahora estoy tratando de hacer referencia a él mediante una ID modal.

Por lo que estoy leyendo, la forma típica de ocultar un modal es $('#myModal').modal('hide'); Sin embargo, esto no parece funcionar para mí, usé $('.modal').modal('hide'); y me pregunto si es porque necesito especificar el ID # del modal, pero no estoy seguro de cuál es la forma "correcta" de hacerlo si mi ID es un @model atributo`

Aqui esta mi boton

<button class="btn btn-danger col-lg-3 col-lg-offset-3" data-toggle="modal" data-target="#@item.ID" onclick="deleteStart(this)">

Aquí está mi clase div inicial para mi modal.

<div class="modal fade" id="@item.ID" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">

Aquí está mi JQuery que es el onClick para mi opción Confirmar eliminación (tengo algunos intentos dentro del código)

function deleteFunction(element) {
var newID = $(element).closest("td").find("span.ID").text();

$.post(
'@Url.Action("customDelete", "Show")',
{
    'id': newID
},
function (data) { },
"json"
);
        $(element).closest("tr").next("tr").remove();
        $(element).closest("tr").remove();

        //$(element).attr("data-target", "#" + newID).modal('hide');
        //$('#newID').modal('hide');
        //$('.modal').modal('hide');

        $(element).closest("table").toggleClass("table-hover");
        $(element).closest("tr").css('background-color', 'initial');
    }

NOTA:el var newID se aplica al ID de objeto del elemento actual (item.ID), pero dado que mi ID modal también está configurada para eso, ¿no debería funcionar?

item.ID es la clave principal de mi modelo, por lo que también es única.

¿Fue útil?

Solución

¡Fijado!El culpable fue modal. fade.

Para que esto funcione, tuve que usar lo siguiente dentro de una función llamada mediante el botón Confirmar.Esto debe hacerse ANTES de cualquier otra cosa, especialmente AJAX.Aparentemente, AJAX puede estropear algunas de las secuencias de comandos de Modal, por lo que debes terminar todas tus cosas modales antes de hacer otras cosas.

Fragmento de función

$('#myModal').removeClass('fade');
$('#myModal').modal('hide');
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top