2016-04-11 10 views
0

Ich habe eine Ansicht, die eine Löschtaste darauf hat, die eine Form in jeder Zeile der Tabelle macht:in js, aber dann außer Kraft setzen, dass

<td> 
@using (Html.BeginForm("Delete", "FP/WorkItem", 
      new { fId = Model.FPId, workId = @w.FId })) { 
     <input name="deleteWorkItem" type="submit" value="Delete" class="btn btn-default" onclick="return confirm('Are you sure?');" /> 
    } 
</td> 

Das ist alles schön und gut funktioniert, aber Ich möchte den muffigen Alarmdialog nicht. Ich möchte eine nette Sache wie Bootbox verwenden. So ändere ich dies die Onclick auf dem Button zu entfernen, und ich habe einige JavaScript hinzu:

$("input[name='deleteWorkItem']").click(function (e) { 
    //return confirm('Delete selected item?'); 
    e.preventDefault(); 
    bootbox.confirm("Delete selected item?", function (result) { 
     return result; 
    }); 
}); 

Ohne die preventDefault das Bestätigungsfeld erscheint nie. Mit der preventDefault wird das Formular nicht zurückgesendet, wenn der Benutzer entscheidet, nicht zu löschen.

Wie kann ich beides haben?

Antwort

0

Halten Sie die e.preventDefault() und bestätigen manuell Callback-Funktion Formularübermittlung auslösen:

bootbox.confirm("Delete selected item?", function (result) { 
    $(this).closest("form").submit() 
    return result; 
}.bind(this)); 
+0

, wenn ich mit der js Lösung gehe ich in dem HTML-Code, um das Ereignis Onclick entfernen – VBAHole

+0

dies tut die Form verhindern, vorgelegt werden und es erlaubt das Formular abgeschickt werden, aber nicht die richtige Form . Ich sollte das Tag in meinem ursprünglichen Beitrag einschließen. Für jede Zeile in der Tabelle gibt es ein Formular. aber diese Methode reicht ein Formular, das nur Postback im Grunde – VBAHole

0

Sie haben die Form statt Taste prevent. Sehen Sie ein Beispiel:

$("form").on("submit", function (e) { 
     e.preventDefault(); //prevent default form submit 

     //do the work here 
    }); 


$("#buttonToSubmit).on("click", function(){ 
    //Line used to force submit the form 
    $("form").off("submit").submit(); 
}); 
+0

ergibt, aber sobald ich Standard auf dem Formular zu unterbinden und der Benutzer sagt, dass sie den Datensatz löschen möchten, habe ich keine Möglichkeit, das Formular zu senden, weil es bereits verhindert wurde – VBAHole

+0

Ich habe meine Antwort bearbeitet. Sieh es dir an und schau, ob es dir hilft. –

+0

dies ermöglicht das Formular zu übermitteln, aber es ist nicht die Form, die ich brauche. Es ist nicht das Löschformular, das die HTML-Hilfsmethode erstellt. – VBAHole

Verwandte Themen