Я пытаюсь сделать подтвердить диалоговое окно с помощью jQuery, но форма не становится отправленной вообще, это - то, что я получил:
<script type="text/javascript">
var currentForm;
$(function() {
$("#dialog-confirm").dialog({
resizable: false,
height: 140,
modal: true,
autoOpen: false,
buttons: {
'Delete all items': function() {
currentForm.submit();
$(this).dialog('close');
},
Cancel: function() {
$(this).dialog('close');
}
}
});
});
function ask() {
currentForm = $(this).closest('form');
$("#dialog-confirm").dialog('open');
}
</script>
<form ... >
<input type="submit" value="delete" onclick="ask();return false;" />
</form>
Вам необходимо, чтобы ваша кнопка диалога отправила
, например:
'Delete all items': function() {
$(this).dialog('close');
$("#myForm").submit();
}
Остальная часть вашего кода верна, но в настоящее время он просто закрывает диалоговое окно и возвращается, вам действительно нужно отправить форму. Кроме того, лучше сделать это как обработчик кликов, а не onclick
, как это ( обновлено для комментариев ):
var currentForm;
$(function() {
$("#dialog-confirm").dialog({
resizable: false,
height: 140,
modal: true,
autoOpen: false,
buttons: {
'Delete all items': function() {
$(this).dialog('close');
currentForm.submit();
},
'Cancel': function() {
$(this).dialog('close');
}
}
});
$(".delete").click(function() {
currentForm = $(this).closest('form');
$("#dialog-confirm").dialog('open');
return false;
});
});
Затем просто дайте свой
класс delete
, например:
<input class="delete" type="submit" value="delete" />
Если вы используете jQuery, делайте это правильно и избегайте встроенного Javascript:
$(function (){
$("form").submit(function (){
// return false if you don't want this to be submitted
// maybe do a
// return ask();
// but with the code provided it doesn't seem
// to work like that - ask() is not returning anything at all!
});
});