Очень новый для jquery и попытка реализовать окно подтверждения для кнопки удаления. Я могу получить простое стандартное поле оповещения для выполнения функции, которую я хочу с помощью этого кода:
<script type="text/javascript">
$(document).ready(function () {
$("input[name='deleteComment']").click(function () {
return confirm('Are You Sure You Want To Delete This?');
});
});
</script>
Теперь это функционально, но выглядит ужасно, поэтому я пытаюсь использовать плагин jQuery-confirmOn. Их документация говорит, чтобы назвать это, я должен использовать такой код:
$('#myButton').confirmOn('click', function(e, confirmed){
if(confirmed) deleteSomethingImportant();
else {
//If we need to, we can do some actions here if the user cancelled the confirmation
}
})
С моими очень ограниченными знаниями jquery я могу понять, что это делает. Но мне нужна следующая строка.
if(confirmed) deleteSomethingImportant();
что мне нужно отредактировать эту строку, чтобы иметь тот же эффект, что и мой первоначальный пример? Я изо всех сил пытаюсь понять, как jquery будет взаимодействовать с MVC, поэтому любая помощь будет назначена.
заранее спасибо
Вы можете просто написать функцию JavaScript, чтобы создать простой диалог подтверждения с jQueryUI. Это очень просто.
Вы передаете сообщение для отображения в диалоговом окне и обратного вызова для вызова при нажатии кнопки "Да".
function confirm(message, callback) {
$('<div></div>').appendTo('body')
.html('<div><p>' + message + '</p></div>') // Append the message
.dialog({
resizable: false,
autoOpen: true,
modal: true,
buttons: [{
text: "Yes",
click: function () {
// Callback on click
if (typeof(callback) !== "undefined") {
callback();
}
$(this).dialog('close');
}
},
{
text: "No",
click: function () {
$(this).dialog('close');
}
}]
});
}
Теперь скажите, что вы хотите подтвердить отправку формы. Вы просто вызываете функцию с параметрами сообщения и обратного вызова:
$('#myButton').click(function(e) {
e.preventDefault();
// Prompt the submit
confirm("Are you sure you want to delete this?", function() {
// Submit the form
$("#myForm").submit();
});
})
Где-то в вашем html у вас есть форма, которую вы хотите опубликовать:
@using ( Html.BeginForm("Delete", "MyController", FormMethod.Post, new {id="myForm"} ))
{
....
}
И получите его в "MyController"
[HttpPost]
public ActionResult Delete(SomeModel model)
{
/* Delete the entity from database */
....
return RedirectToAction("Index");
}
Попробуйте это, это просто пример
$(document).ready(function(){
$(".confirm").easyconfirm();
$("#alert").click(function() {
alert("You approved the action");
});
});
<a href="#" class="confirm" id="alert">Normal test</a>
И для большего количества примеров прочитайте это
confirmOn
вызоветdeleteSomethingImportant()
когда удаление будет подтверждено.deleteSomethingImportant()
вы можете, например, сделать ajax-вызов на сервер, чтобы узнать, какие вещи нужно удалить.