默认是异步的,有没有办法变成同步方式提交。因为碰到一个问题,在表单提交的success里用window.open打开新窗口会跳出新的浏览器窗口而不会变成新Tab页,只有在form表单提交的代码段之外window.open才会变成tab页。另外想请教ajax的success里用window.open打开新窗口会跳出新的浏览器窗口而不会变成新Tab页是什么原因?浏览器是chrome
3条回答 默认 最新
- lovejiegirl1 2014-05-20 14:49关注
[code="java"]
submit: function(jq, options){
return jq.each(function(){
var opts = $.extend({},
$.fn.form.defaults,
$.data(this, 'form') ? $.data(this, 'form').options : {},
options||{}
);
ajaxSubmit(this, opts);
});
},function ajaxSubmit(target, options){
options = options || {};var param = {};
if (options.onSubmit){
if (options.onSubmit.call(target, param) == false) {
return;
}
}var form = $(target);
if (options.url){
form.attr('action', options.url);
}
var frameId = 'easyui_frame_' + (new Date().getTime());
var frame = $('')
.attr('src', window.ActiveXObject ? 'javascript:false' : 'about:blank')
.css({
position:'absolute',
top:-1000,
left:-1000
});
var t = form.attr('target'), a = form.attr('action');
form.attr('target', frameId);var paramFields = $();
try {
frame.appendTo('body');
frame.bind('load', cb);
for(var n in param){
var f = $('').val(param[n]).appendTo(form);
paramFields = paramFields.add(f);
}
checkState();
form[0].submit();
} finally {
form.attr('action', a);
t ? form.attr('target', t) : form.removeAttr('target');
paramFields.remove();
}在cb函数中使用了setTimeout,如果你在success方法中使用window.open ,是页面直接调用或通过定时器等调用的,没有通过鼠标键盘事件,在google浏览器下是会弹出新窗口的。
[/code]本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1
悬赏问题
- ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
- ¥30 截图中的mathematics程序转换成matlab
- ¥15 动力学代码报错,维度不匹配
- ¥15 Power query添加列问题
- ¥50 Kubernetes&Fission&Eleasticsearch
- ¥15 報錯:Person is not mapped,如何解決?
- ¥15 c++头文件不能识别CDialog
- ¥15 Excel发现不可读取的内容
- ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
- ¥20 yolov5自定义Prune报错,如何解决?