次のコードがあります。
HTML
<form action="" method="post" accept-charset="utf-8" class="button-to-delete">
<input type="submit" name="delete" value="Delete" class="btn btn-danger" />
</form>
<div class="hidden-dialog" title="Delete product">
<p>Are you sure that you want to delete thi product?</p>
<p>Green Lantern T-Shirt</p>
</div>
CSS
.hidden-dialog { display: none; }
JavaScript
$(document).ready(function() {
var dialog = $('form.button-to-delete + div.hidden-dialog').dialog({
resizable: false,
autoOpen: false,
modal: true,
buttons: {
'Yes!' : {
class: 'btn btn-danger',
text: 'Yes!',
click: function () {
$(this).prev('form.button-to-delete').submit(true);
}
},
'No!' : {
class: 'btn',
text: 'No!',
click: function () {
$(this).dialog("close");
}
}
}
});
$('form.button-to-delete').submit(function() {
var targetURL = $(this).attr("href");
dialog.dialog('open');
return false;
});
});
そして、これが jsFiddle バージョンです: http://jsfiddle.net/mdJZ8/1/
フォーム ボタンをクリックすると、jQuery UI ダイアログが表示され、メッセージと 2 つのボタンが表示されます。と「いいえ!」。「いいえ!」ボタンは正常に動作します。「はい!」一方、ボタンはそうではありません。フォームを送信するはずですが、送信しません。問題はreturn false
発言にあるのではないかと思います。ただし、ステートメントを削除すると、ダイアログが一瞬表示され、ユーザーがオプションを選択する機会を与えずにフォームが送信されます。ユーザーが「はい」をクリックした場合にのみフォームを送信するように、このコードを修正するにはどうすればよいですか。ボタンください?