Javascript 防止在单击提交按钮时关闭引导模式
我有一个引导模式。当用户单击“更新”按钮时,它会发出一个ajax调用来更新数据库。但是,如果由于某种原因更新失败,我希望显示错误消息并保持模式打开 一切似乎都按照我预期的顺序运行,但是Javascript 防止在单击提交按钮时关闭引导模式,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,我有一个引导模式。当用户单击“更新”按钮时,它会发出一个ajax调用来更新数据库。但是,如果由于某种原因更新失败,我希望显示错误消息并保持模式打开 一切似乎都按照我预期的顺序运行,但是e.preventDefault()似乎无法阻止模式关闭 为什么preventDefault()没有停止按钮的提交 我的按钮: <button type="submit" class="btn btn-success" id="btnUpdate" style="margin-right:10px">U
e.preventDefault()
似乎无法阻止模式关闭
为什么preventDefault()
没有停止按钮的提交
我的按钮:
<button type="submit" class="btn btn-success" id="btnUpdate" style="margin-right:10px">Update</button>
只需将按钮类型更改为
按钮
即可防止提交:
<button type="button" class="btn btn-success" id="btnUpdate" style="margin-right:10px">Update</button>
e.preventDefault()
是从updateData
方法的回调函数调用的,很可能在调用回调之前事件已完成
在调用updateData
方法之前,尝试放置e.preventDefault()
希望这有帮助Bootstrap附带的“本机”模式似乎对javascript程序员不友好,请参阅下面的替代插件:
BootstrapDialog.show({
标题:“Ajax检查”,
消息:“单击下面的按钮”,
按钮:[{
标签:“提交”,
cssClass:'btn primary',
操作:函数(dialogRef){
//假设这里启动了一个新的ajax请求
$.when().done(函数()){
var-ok=false;
如果(!ok){
dialogRef.setMessage('Dude,出了点问题!');
}否则{
警惕(“伟大!”);
}
});
}
}, {
标签:“取消”,
操作:函数(dialogRef){
dialogRef.close();
}
}]
});代码>
这确实有帮助,但会导致客户端验证出现问题。我将按钮从submit更改为button,并在代码中添加了一些内容,以成功关闭模式,这很好。。。但是在模式中,我有两个输入字段,我添加了“required”属性。它现在停止工作,因为它不再是提交按钮。我想我完全可以处理服务器端的错误检查,但最终还是希望在客户端和服务器端都进行验证。我明白你的意思,但对我来说不起作用。我想我的主页上有一个缺陷。当我检查html时,我的引导模式中没有一个呈现标记。
<button type="button" class="btn btn-success" id="btnUpdate" style="margin-right:10px">Update</button>
$("#btnUpdate").on("click", function (e) {
// reset the message...
$("#errorMessage").html("");
if($("form")[0].checkValidity()) {
// get the value...
var myParam = $("#someSelection").attr("someData");
var myParamData = JSON.parse(myParam );
updateData(myParamData.Name)
.done(function (result) {
if (!result.d == "") {
$("#errorMessage").html(result.d);
e.preventDefault();
}
else {
loadData();
}
});
}else{
console.log("invalid form");
}
});