0 0

easyui的form表单能否用同步的方式提交?0

默认是异步的,有没有办法变成同步方式提交。因为碰到一个问题,在表单提交的success里用window.open打开新窗口会跳出新的浏览器窗口而不会变成新Tab页,只有在form表单提交的代码段之外window.open才会变成tab页。另外想请教ajax的success里用window.open打开新窗口会跳出新的浏览器窗口而不会变成新Tab页是什么原因?浏览器是chrome
2014年5月20日 09:27

3个答案 按时间排序 按投票排序

0 0

采纳的答案


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 = $('<iframe id='+frameId+' name='+frameId+'></iframe>')
    .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 = $('<input type="hidden" name="' + n + '">').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浏览器下是会弹出新窗口的。

2014年5月20日 14:49
0 0


$.ajax({  
  url: "test.html",  
  data :[], 
  async : false,
 
  
}); 

2014年5月20日 10:21
0 0

window.open(URL,name,features,replace)
只有在设置了第三个参数才会打开新的窗口
在没指定第三个属性时只会在当前窗口打开新的标签。
(在IE中,如果要打开的URL与当前页面URL不属于同一个主域名则打开新窗口;
在Chrome中,如果window.open()函数不是被鼠标键盘事件调用的,而是页面直接调用或通过定时器等调用的,则打开新窗口而非标签)

既然用到了easyui,那可以使用tabs

function addTab(title, url){  
    if ($('#tt').tabs('exists', title)){  
        $('#tt').tabs('select', title);  
    } else {  
        var content = '<iframe scrolling="auto" frameborder="0" 
         src="'+url+'" style="width:100%;height:100%;"></iframe>';  
        $('#tt').tabs('add',{  
            title:title,  
            content:content,  
            closable:true  
        });  
    }  
} 


在jquery中的ajax方法中可以指定同步请求
jquery API中这样描述的:

async (default: true)
Type: Boolean
By default, all requests are sent asynchronously (i.e. this is set to true by default). If you need synchronous requests, set this option to false. Cross-domain requests and dataType: "jsonp" requests do not support synchronous operation. Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active. As of jQuery 1.8, the use of async: false with jqXHR ($.Deferred) is deprecated; you must use the success/error/complete callback options instead of the corresponding methods of the jqXHR object such as jqXHR.done() or the deprecated jqXHR.success().
代码如下:

$.ajax({
  url: "test.html",
  data :[],

});

2014年5月20日 10:20

相关推荐

    form多表单同时提交以及支持下拉框可编辑源码

    这种情况下,传统的表单提交方式往往难以满足需求。因此,我们可以通过编写自定义的JavaScript代码来实现多表单的同时提交。 #### 实现步骤 1. **确定表单元素**:首先,需要确定哪些表单需要同时提交,并为这些...

    easyui form validate总是返回false的原因及解决方法

    在使用EasyUI框架进行Web应用开发时,表单验证是一个重要的功能,确保用户输入的数据符合预设的规范。然而,在实际操作中,我们可能会遇到`form.validate()`方法总是返回`false`的问题,导致表单无法正常提交。这个...

    EasyUI的小案例

    在EasyUI中,创建新数据通常涉及使用表单(form)组件。开发者可以定义表单字段,与后端API交互,将用户输入的数据发送到服务器。EasyUI的表单组件支持各种验证规则,确保数据的有效性。 3. **读取(Retrieve)** ...

    easyui小案例

    在增、删、改操作中,EasyUI的form通常与dialog配合使用,弹出一个窗口供用户输入或修改数据。 3. **对话框(dialog)**:dialog在EasyUI中常用于显示独立的、临时性的内容,比如在添加新记录或编辑已有记录时,会...

    easyui的帮助文档及案例

    这些案例涵盖了基础到高级的应用场景,比如“按钮(Button)”的点击事件处理、“表单(Form)”的验证和提交、“面板(Panel)”的展开和折叠等。此外,还有关于数据加载、异步操作、自定义扩展等方面的实例,这些...

    easyui模版

    这个压缩包文件 "easyuidemo" 涵盖了 EasyUI 模板的一些核心功能,包括数据提交、表格展示、表单操作以及添加、修改和删除等常见业务流程。 1. **数据提交**: 在 Web 应用中,数据提交是必不可少的。EasyUI 提供...

    easyui增删改查案例

    EasyUI 是一个基于 jQuery 的前端框架,它提供了一系列易于使用的组件,如对话框、表格、菜单、表单等,帮助开发者快速构建用户界面。在这个"easyui增删改查案例"中,我们将深入探讨如何利用 EasyUI 实现数据的添加...

    jquery-easyui

    EasyUI 提供了一系列易于使用的组件,如数据网格、表单、菜单、对话框等,使得开发者可以专注于业务逻辑,而无需花费大量时间在界面设计上。 一、jQuery EasyUI 的核心特性 1. **轻量级**:jQuery EasyUI 构建在 ...

    jQuery EasyUI-1.4.1

    表单(form)组件则提供了对表单元素的管理和验证功能。开发者可以方便地将表单数据与后台模型绑定,实现数据的双向同步。EasyUI 还支持多种验证规则,确保输入数据的有效性。 菜单(menu)组件为创建下拉菜单或树...

    jQuery+EasyUI开发指南源码

    例如,通过`datagrid`的`url`属性加载远程数据,或使用`form`的`submit`事件进行表单提交。 4. **AJAX交互**:理解jQuery的AJAX方法,如`$.ajax()`、`$.get()`、`$.post()`,并掌握它们在EasyUI组件中的应用,实现...

    jquery easyui 中文版 api,chm格式

    - Form:表单组件,能与服务器进行数据交互。 - Menu:菜单组件,可自定义菜单项和事件。 - Button:按钮组件,支持普通按钮和链接按钮。 - Layout:布局组件,用于划分页面区域。 3. **主题与皮肤**:介绍如何...

    jquery-easyui-1.3.4-api_官方英文原版.zip

    - **Form**:表单组件,与后端数据交互,支持验证和提交。 2. **API 使用指南** - **CSS样式**:EasyUI 自带一套完整的 CSS 样式,通过类名控制组件外观,如`.datagrid`, `.panel` 等。 - **属性设置**:每个...

    jQuery EasyUI 1.2.5

    `jquery.easyui.min.js` 文件是 jQuery EasyUI 的核心组件库,它包含了诸如对话框(dialog)、表单(form)、数据网格(datagrid)、下拉列表(combobox)、树形控件(tree)等组件的实现。这些组件都是预先封装好的...

    EasyUI API 1.3 中文

    1. **组件系统**:EasyUI 提供了各种组件,如数据网格(datagrid)、表单(form)、窗口(window)、对话框(dialog)、菜单(menu)、按钮(button)等。这些组件具有预设样式,易于配置和使用,极大地提高了开发...

    easyui项目实战

    - 表单(form):了解表单控件的使用,如文本框、选择框、日期选择器等,并学习表单验证。 - 对话框(dialog):理解对话框的打开、关闭、大小调整等操作,以及如何在对话框中嵌入表格和表单。 - 树形菜单(tree...

    EasyUI 1.3.4 官方 API 中文版

    1. **组件体系**:EasyUI 提供了多种组件,如面板(Panel)、表格(Grid)、表单(Form)、树形视图(Tree)、下拉框(ComboBox)、菜单(Menu)等,这些组件可以方便地组合使用,构建出复杂的页面结构。 2. **主题...

    jquery+easyui

    6. **表单(Form)**: 自动验证和提交数据的表单组件,与后端交互方便,如 `$('#form').form({})`。 7. **其他组件**: 还包括按钮(Button)、提示(Tip)、树形结构(Tree)、选项卡(Tabs)等,丰富了Web应用的...

    easyuiDemo

    首先,EasyUI 提供了一系列预定义的CSS样式和JavaScript插件,如对话框(dialog)、表格(datagrid)、菜单(menu)、表单(form)等,这些组件都具有良好的交互性和响应性。例如,datagrid组件可以方便地展示和操作...

    example.rar

    结合`easyui-datagrid`实现数据表格,`easyui-dialog`构建对话框,以及`easyui-form`处理表单数据,可以满足后台系统中常见的业务需求。 五、网站框架的整合 将登录画面、左侧菜单和主画面结合,便形成了一个基础的...

    jquery-easy-ui-1.3.2

    7. **响应式设计**:虽然EasyUI 主要关注桌面应用,但通过一些技巧和额外的CSS调整,也能实现基本的移动端适配,适应不同设备的屏幕尺寸。 8. **易用性**:EasyUI 的API设计简洁,只需简单的HTML和JavaScript代码...

Global site tag (gtag.js) - Google Analytics