这是我想做的-
- 当用户单击主表单的提交按钮时显示提示(使用 jquery 的即兴)。提示又是一个表单,它有一个密码字段和一个“确定”和“取消”按钮。
- 当用户单击“确定”时,会发布主表单(以及附加到主表单的密码值)。
- 如果用户单击取消,则不会提交表单。
细节
我之前问过一个问题 - jquery form submit() not working inside callback function after prevent normal submit while using impromptu
并且能够使用javascript的本机提示方法成功实现我想要的。但我想使用 jquery 的即兴插件做同样的事情。
这是使用本机 javascript 提示符的工作代码 -
$('#frmAddAdnetworkTemplate').submit(function(event){
promptText = "Password required";
postedPassword = prompt(promptText);
if(postedPassword)
{
$("form#frmAddAdnetworkTemplate").find("input#manage_adnetwork_password").val(postedPassword);
}
else
{
event.preventDefault();
}
});
这是我到目前为止使用即兴的代码 -
$('#frmAddAdnetworkTemplate').submit(callBackSubmit);
function callBackSubmit(event){
$.prompt(passwordForm,{ buttons: { Ok: true, Cancel: function(){event.preventDefault(); } }, submit: submitPasswordPrompt});
//how do I call event.preventDefault(); when user cancel’s.
//The form gets submitted anayway, it does not wait for the code inside submitPasswordPrompt() to execute. How do I put some callback and make the submit event listener to wait until the user clicks Ok or Cancel?
}
function submitPasswordPrompt(e, value,m,form)
{
if(value)
{
$("form#frmAddAdnetworkTemplate").find("input#manage_adnetwork_password").val(postedPassword);
//append the password value in the main form
}
}
但是表单无论如何都会被提交,我不确定如何放置某种回调来阻止提交,直到响应即兴提示。它不会像 javascript 的天真提示那样等待。
另外,请注意,我已经尝试在开始时使用 event.preventDefault 并在我之前的问题jquery form submit() not working inside callback function after prevent normal submit while using impromptu 之后尝试使用 form.submit() 。但在这种情况下,表单只是不提交(不显示 javascript 错误)。请看看你能不能回答这个问题。