防止在QWebView中重新加载表单
Prevent form reload in QWebView
我正在异步提交一个表单。因此,我不希望页面重新加载,因此在处理程序中放置了preventDefault
调用,但它仍然在提交时重新加载页面。就我阅读的其他主题而言,这应该足以禁用页面重新加载,但很明显,我遗漏了一些内容。
$( "#loginForm" ).submit( function( event ) {
try {
event.preventDefault();
// Some async handling
} catch( ex ) {
alert( ex );
}
return false;
} );
有人能指出我方法中的问题吗?整件事都发生在QtWebkit
控件内部。
编辑:
现在也尝试过:
$( "#submitButton" ).on( "click", function( event ) {
try {
// Some async handling
} catch( ex ) {
alert( ex );
}
return false;
} );
没有什么不同的结果。
尝试查看loginForm提交事件是否被捕获:
$( "#loginForm" ).submit( function( event ) {
alert('submit event fired');
});
如果它正在发射,那么试试这个:
$( "#loginForm" ).submit( function( event ) {
event.preventDefault();
try {
//do something in here
// Some async handling
} catch( ex ) {
alert( ex );
}
return false;
});
顺便问一下,它是ASP.NET web表单吗?表单ID不同,而不是#loginForm
先做一些处理,然后调用e.preventDefault
,而不是像Matthias的代码那样反过来。
另请参阅"return false;"之间的区别和'e.preventDefault()
return false;
和event.preventDefault();
均按预期工作。看看这个Fiddle。您的事件处理程序可能有问题。
$( "#loginForm" ).submit( function( event ) {
try {
// Some async handling
} catch( ex ) {
alert( ex );
}
event.preventDefault(); // or return false;
} );
如果#loginForm引用的是表单本身(而不是提交输入),那么这就是您的问题。将事件指向提交输入本身。如果失败,请将输入submit更改为按钮,这肯定会起作用。
编辑:
将输入提交按钮更改为:
<button id="submitButton">Submit</button>
这样就没有默认的阻止,因为它不是表单输入提交。此按钮将永远不会重新加载页面。然后您只需要将一个点击事件附加到#submitButton
相关文章:
- Highcharts赢得't加载表单外部文件
- 如何在加载表单时获得对Builder配置的Jenkins果冻脚本中表单元素的引用
- Yii ActiveForm:通过jQuery.load加载表单
- 如何使用基于角度$resource的值加载表单
- 加载表单时在警报框中显示父联系人任务
- 如何在 ajax 加载表单上激活 django form.media javascript
- 在提交时重新加载表单,并提供最新的帖子数据
- Yii 客户端验证在 ajax 加载表单上不起作用
- 在窗口上加载表单未加载
- 如何用数据预加载表单(新操作),然后在Ruby on Rails中提交
- 如何在 IE 中强制重新加载表单
- 使用 ajax 加载表单并使用 jQuery 提交
- 将表单发送到电子邮件地址,还可以从cookie中保存/加载表单
- Jquery实时加载-通过ajax加载表单
- 再次使用ajax加载表单时未选中单选按钮
- 加载表单在同一分区中提交结果
- 加载表单后立即失去焦点
- 在第一部分完成ajax之后加载表单的第二部分
- 如何在不刷新、显示输出、重新加载表单、冲洗和重复的情况下提交表单
- 在对话框中重新加载表单而不重新加载页面