我有一个表单,当提交被点击时我想要一个模态框弹出一个YES和NO按钮我想要是和否按钮提交表单但我需要知道他们点击了哪个按钮。
这是我的代码
<input onclick="$.msgbox('confirm text',{
buttons : [
{type: 'submit', value:'YES'},
{type: 'submit', value:'NO'}
]
}, function(buttonPressed) {
});" name="btnApply" id="btnApply" tabindex="41" src="images/btnsubmit.jpg" style="border-width: 0px;" type="image" />
我的问题是表单在用户点击提交时提交。
任何帮助或想法都会很棒
感谢
答案 0 :(得分:2)
虽然我不熟悉$.msgbox
插件,但您应该在<form>
提交而不是按下按钮时打开模式对话框,因为表单也可以通过输入/提交返回某些输入字段(如文本框<input type="text|password">
)
var confirmed = false;
$('#myform').bind('submit', function() {
if (confirmed) {
return true; // confirmation received, continue form submission process
} else {
$.msgbox(
'my modal message',
{
buttons : [
{ type: 'button', value: 'YES' },
{ type: 'button', value: 'NO' }
]
},
function(buttonPressed) {
confirmed = buttonPressed.value; // Update the confirmed variable
$('#myform').submit(); // re-submit the form
}
);
return false; // cancel form submission
}
});
答案 1 :(得分:1)
添加返回false:
<input onclick="$.msgbox('Would you like a cash advance of up to £1000 whilst we process your loan?',{
buttons : [
{type: 'submit', value:'YES'},
{type: 'submit', value:'NO'}
]
}, function(buttonPressed) {
}); return false;" name="btnApply" id="btnApply" tabindex="41" src="images/btnsubmit.jpg" style="border-width: 0px;" type="image" />
答案 2 :(得分:0)
不确定msgbox
是否有关于您的代码的一些评论:
不要将JS逻辑直接附加到您的代码中,而是使用jQuery将click事件附加到您的标记(请参阅unobtrusive javascript):
而不是
<input onclick="$.msgbox('confirm text',{
使用
$('#btnApply').click(function(e) {
您可以通过将事件参数设置为false one property来停止点击处理:
$('#btnApply').click(function(e) {
e.preventDefault(); // stop click handling and so form submitting
最后,在msgbox
回调函数中处理表单提交与否:
$.msgbox("Are you sure that you want to permanently delete the selected element?", {
type: "confirm",
buttons: [
{
type: "submit",
value: "Yes"},
{
type: "submit",
value: "No"},
{
type: "cancel",
value: "Cancel"}
]
}, function(result) {
if(result == "Yes") // display the form on submit
$('form').submit();
});