先上代码:

Ext.require([
'Ext.grid.*',
'Ext.data.*',
'Ext.util.*',
'Ext.state.*',
'Ext.form.*'
]);
Ext.onReady(function() {
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side';// 设置控件的错误信息显示位置,主要可选的位置有:qtip,title,under,side,[elementId]
var length;
//获取url中的参数
var test = document.getElementById("addNewValjs");
var src = test.getAttribute("src");
var form_id = src.substring(src.indexOf('=')+1);
var formPanel = new Ext.form.FormPanel({
height: 555,
autoWidth:true,
autoHeight: true,
border : false,
layout: {
type: 'column'
},
bodyPadding: 10,
items: [{
xtype: 'label',
height: 23,
text: 'Add New Value'
},
{
xtype: 'button',
margin: '0 0 0 5',
text: 'save',
handler:function(){
/**************取值:将对应显示组件的输入值和对应的tNFormPropertyTPId取到***start***********/
var form = Ext.getCmp("form").getForm();//获得form表单控件
/********定义数组类型的数据,获得每个case内的id数据与value数据**********/
var radiobit = [];
var radiobitmapId = [];
var textFieldVARCHAR = [];
var textFieldVARCHARmapId = [];
var textFieldbigint = [];
var textFieldbigintmapId = [];
var textFieldnumeric = [];
var textFieldnumericmapId = [];
var textFieldint = [];
var textFieldintmapId = [];
var textFielddouble = [];
var textFielddoublemapId = [];
var textAreatext = [];
var textAreatextmapId = [];
var textArealongtext = [];
var textArealongtextmapId = [];
var comboBoxreference = [];
var comboBoxreferencemapId = [];
var selectedDatedatetime = [];
var selectedDatedatetimemapId = [];
var selectedDatedate = [];
var selectedDatedatemapId = [];
var gridinclude3=[];
var gridinclude3mapId = [];
var IdString = [];
if(null != form.findField("radiobit0")){
for(var i = 0;i < bit; i++ ){
var radioCmp = form.findField("radiobit"+i);
var j = "radiobit"+i;//用j取到对象内的radiobit0,radiobit1...
var inputValue = radioCmp.getValue()[j];//取到对应的inputValue
radiobit[i] = radioCmp.getBoxes()[inputValue].BoxLabel; //取到对应的BoxLabel
radiobitmapId[i] = form.findField("radiobit"+i).mapId;
}
}
if(null != form.findField("textFieldVARCHAR0")){
for(var i = 0;i < VARCHAR; i++){
var obj = form.findField("textFieldVARCHAR"+i);
textFieldVARCHAR[i] = form.findField("textFieldVARCHAR"+i).getValue();
textFieldVARCHARmapId[i] = form.findField("textFieldVARCHAR"+i).mapId;
}
}
if(null != form.findField("textFieldbigint0")){
for(var i = 0;i < bigint; i++){
textFieldbigint[i] = form.findField("textFieldbigint"+i).getValue();
textFieldbigintmapId[i] = form.findField("textFieldbigint"+i).mapId;
}
}
if(null != form.findField("textFieldnumeric0")){
for(var i = 0;i < numeric; i++){
textFieldnumeric[i] = form.findField("textFieldnumeric"+i).getValue();
textFieldnumericmapId[i] = form.findField("textFieldnumeric"+i).mapId;
}
}
if(null != form.findField("textFieldint0")){
for(var i = 0;i < normalInt; i++){
textFieldint[i] = form.findField("textFieldint"+i).getValue();
textFieldintmapId[i] = form.findField("textFieldint"+i).mapId;
}
}
if(null != form.findField("textFielddouble0")){
for(var i = 0;i < normalDouble; i++){
textFielddouble[i] = form.findField("textFielddouble"+i).getValue();
textFielddoublemapId[i] = form.findField("textFielddouble"+i).mapId;
}
}
if(null != form.findField("textAreatext0")){
for(var i = 0;i < text; i++){
textAreatext[i] = form.findField("textAreatext"+i).getValue();
textAreatextmapId[i] = form.findField("textAreatext"+i).mapId;
}
}
if(null != form.findField("textArealongtext0")){
for(var i = 0;i < longtext; i++){
textArealongtext[i] = form.findField("textArealongtext"+i).getValue();
textArealongtextmapId[i] = form.findField("textArealongtext"+i).mapId;
}
}
if(null != form.findField("comboBoxreference0")){
for(var i = 0;i < reference; i++){
comboBoxreference[i] = form.findField("comboBoxreference"+i).getValue();
comboBoxreferencemapId[i] = form.findField("comboBoxreference"+i).mapId;
}
}
if(null != form.findField("selectedDatedatetime0")){
for(var i = 0;i < datetime; i++){
selectedDatedatetime[i] = form.findField("selectedDatedatetime"+i).getValue();
selectedDatedatetimemapId[i] = form.findField("selectedDatedatetime"+i).mapId;
}
}
if(null != form.findField("selectedDatedate0")){
for(var i = 0;i < date; i++){
selectedDatedate[i] = form.findField("selectedDatedate"+i).getValue();
selectedDatedatemapId[i] = form.findField("selectedDatedate"+i).mapId;
}
}
if(null != Ext.getCmp("configGrid0")){
for(var i = 0;i < include3; i++){
var gridobj = Ext.getCmp("configGrid"+i);
gridinclude3mapId[i] = Ext.getCmp("configGrid"+i).mapId;
for(var a = 0;a<length;a++){
IdString[a] = gridobj.columnManager.columns[a].propertyTPId;
}
//以下为存grid内的数据
var grid_include3 = Ext.getCmp("configGrid"+i);//获取到grid
var m = grid_include3.store.getModifiedRecords();//m表示被修改的行
gridinclude3[i] = '[';
for (var a = 0; a < m.length; a++) {
gridinclude3[i] = gridinclude3[i] + Ext.JSON.encode(m[a].data) + ',';
}
gridinclude3[i]=gridinclude3[i].length>0?gridinclude3[i].substring(0,gridinclude3[i].length-1):gridinclude3[i] ;
gridinclude3[i] += ']';
}
}
/****取值:将对应显示组件的输入值和对应的tNFormPropertyTPId取到***end*****/
if (Ext.getCmp('form').getForm().isValid()) {
Ext.getCmp('form').getForm().submit({
url:'createNewForm/createNewForm!addNewValue.action',
method:'POST',
params:{formId:form_id,
radiobit:JSON2.stringify(radiobit),
radiobitmapId:JSON2.stringify(radiobitmapId),
textFieldVARCHAR:JSON2.stringify(textFieldVARCHAR),
textFieldVARCHARmapId:JSON2.stringify(textFieldVARCHARmapId),
textFieldbigint:JSON2.stringify(textFieldbigint),
textFieldbigintmapId:JSON2.stringify(textFieldbigintmapId),
textFieldnumeric:JSON2.stringify(textFieldnumeric),
textFieldnumericmapId:JSON2.stringify(textFieldnumericmapId),
textFieldint:JSON2.stringify(textFieldint),
textFieldintmapId:JSON2.stringify(textFieldintmapId),
textFielddouble:JSON2.stringify(textFielddouble),
textFielddoublemapId:JSON2.stringify(textFielddoublemapId),
textAreatext:JSON2.stringify(textAreatext),
textAreatextmapId:JSON2.stringify(textAreatextmapId),
textArealongtext:JSON2.stringify(textArealongtext),
textArealongtextmapId:JSON2.stringify(textArealongtextmapId),
comboBoxreference:JSON2.stringify(comboBoxreference),
comboBoxreferencemapId:JSON2.stringify(comboBoxreferencemapId),
selectedDatedatetime:JSON2.stringify(selectedDatedatetime),
selectedDatedatetimemapId:JSON2.stringify(selectedDatedatetimemapId),
selectedDatedate:JSON2.stringify(selectedDatedate),
selectedDatedatemapId:JSON2.stringify(selectedDatedatemapId),
gridinclude3:JSON2.stringify(gridinclude3),
gridinclude3mapId:JSON2.stringify(gridinclude3mapId),
IdString:JSON2.stringify(IdString)
},
waitTitle : "提示",
waitMsg: '请稍等,正在提交数据……',
success: function(form,action){
alert(action.response.responseText);
},
failure: function(form,action){
alert("不成功");
}
});
}else{
alert("未通过验证");
}
}
},{
xtype: 'form',
layout : 'column',
autoHeight: true,
margin: 10,
id:"form",
autoWidth: true,
bodyPadding: 10,
title: 'Form Value Setting',
items: []
}
]
});
//测试从后台传sdto数据至前台”
Ext.define("formPropertyTPList",{
extend:"Ext.data.Model",
fields:[
{name: 'FmPropTpName',type:'string'},
{name: 'SelectValue',
{name: 'RefFormId',type:'long'},
{name: 'TNFormPropertyTPId',
{name: 'DataTPSdto.dataTpName',type:'string'}
]
});

/**************定义全部变量使得在提交时能得到这边计数的数***************/
var bit = 0;
var VARCHAR = 0;
var bigint = 0;
var numeric = 0;
var normalInt = 0;//对int类数据进行计数
var normalDouble = 0;//对double类数据进行计数
var text = 0;
var longtext = 0;
var reference = 0;
var timestamp = 0;
var datetime = 0;
var date = 0;
var include1 = 0;
var include2 = 0;
var include3 = 0;
var relationship = 0;

//定义全局变量,便于在方法外获取数据
var dataObj = new Array();
// var formID = ${form_id};
Ext.Ajax.request({
url:"createNewForm/createNewForm!viewFormProptpdata.action?form_id="+form_id,
success:function(response,options){
var response = Ext.JSON.decode(response.responseText);
$.each(response,function (i,map) {
for(var k in map){
if(k=="dataTPSdto"){
var arry=map[k];
var dataTpName=arry.dataTpName;
var fmPropTpName=map.fmPropTpName;
//处理selectValue作为单选按钮的选项的标签
var selectValue = map.selectValue;
var radiovalues = null;
if(null != selectValue){
radiovalues = selectValue.split("|");
}
var refFormId = map.refFormId;
var tNFormPropertyTPId =map.tNFormPropertyTPId;
if(null != radiovalues){
toCreateFunctionOne(dataTpName,fmPropTpName,radiovalues,refFormId,tNFormPropertyTPId);
}
else{
toCreateFunctionTwo(dataTpName,tNFormPropertyTPId);
}
}
}
});

function toCreateFunctionOne(tp,tName,tNFormPropertyTPId){
switch(tp){
case 'bit(1)' :
var radio = new Ext.form.RadioGroup({
fieldLabel: tName,
mapId:tNFormPropertyTPId,
name:"radiobit"+bit,
margin: '5 10 5 10',
emptyText: "请输入...",
width: 300,
labelWidth: 100,
items: [{
name:"radiobit"+bit,
inputValue: '0',
BoxLabel: radiovalues[0]
},{
name:"radiobit"+bit,
inputValue: '1',
BoxLabel: radiovalues[1]
}]
});
Ext.getCmp('form').add(radio);
bit++;
break;
case 'VARCHAR(255)':
var textField = Ext.create('Ext.form.field.Text',{
margin: '5 10 5 10',
emptyText:"请输入...",
fieldLabel: tName,
name:"textFieldVARCHAR"+VARCHAR,
width:300,
labelWidth: 100
});
Ext.getCmp('form').add(textField);
VARCHAR++;
break;
case'bigint(20)':
var textField = Ext.create('Ext.form.field.Text',
name:"textFieldbigint"+bigint,
labelWidth: 100
});
Ext.getCmp('form').add(textField);
bigint++;
break;
case'numeric(22,2)':
var textField = Ext.create('Ext.form.field.Text',
name:"textFieldnumeric"+numeric,
labelWidth: 100
});
Ext.getCmp('form').add(textField);
numeric++;
break;
case 'int(11)' :
var textField = Ext.create('Ext.form.field.Text',
name:"textFieldint"+normalInt,
labelWidth: 100
});
Ext.getCmp('form').add(textField);
normalInt++;
break;
case 'double' :
var textField = Ext.create('Ext.form.field.Text',
name:"textFielddouble"+normalDouble,
labelWidth: 100
});
Ext.getCmp('form').add(textField);
normalDouble++;
break;
case 'text' :
var textArea = Ext.create('Ext.form.field.TextArea',
name:"textAreatext"+text,
labelWidth: 100
});
Ext.getCmp('form').add(textArea);
text++;
break;
case 'longtext' :
var textArea = Ext.create('Ext.form.field.TextArea',
name:"textArealongtext"+longtext,
labelWidth: 100
});
Ext.getCmp('form').add(textArea);
longtext++;
break;
case 'reference' :
Ext.define("formProperty",{
extend:"Ext.data.Model",
fields : [
{name: 'tNFormPropertyId',type: 'long'},
{name: 'colum0',type: 'string'}
]
});
var countryStore = Ext.create("Ext.data.Store",{
model:"formProperty",
proxy:{
type:"ajax",
url:"createNewForm/createNewForm!accquireCountryData.action?refFormId=" + refFormId,
reader: {type: 'json',root : "formPropertyList"}
}
});
countryStore.load();
var comboBox = Ext.create('Ext.form.ComboBox',{
store: countryStore,
valueField : "tNFormPropertyId",// 设置下拉选择框的值
displayField : "colum0",// 设置下拉选择框的显示文本
mode : 'remote',// 数据是在本地
forceSelection : true,// 必须选择一个选项
blankText : 'Country',// 提交form时,该项如果没有选择,则提示错误信息"请选择学历"
emptyText : 'Country',// 在没有选择值时显示为选择学历
hiddenName : 'Country',// 大家要注意的是hiddenName和name属性,name只是下拉列表的名称,作用是可通过,而hiddenName才是提交到后台的input的name。如果没有设置hiddenName,在后台是接收不到数据的,这个大家一定要注意。
editable : false,
triggerAction : 'all',// 因为这个下拉是只能选择的,所以一定要设置属性triggerAction为all,不然当你选择了某个选项后,你的下拉将只会出现匹配选项值文本的选择项,其它选择项是不会再显示了,这样你就不能更改其它选项了。
allowBlank : false,
fieldLabel : tName,
name:"comboBoxreference"+reference,
mapId:tNFormPropertyTPId,
margin: '5 10 5 10',
width:300,
labelWidth: 100
});
Ext.getCmp('form').add(comboBox);
reference++;
break;
case 'timestamp' :
timestamp++;
break;
case 'datetime' :
var selectedDate = Ext.create('Ext.form.DateField',
format : 'Y-m-d',//日期格式
name:"selectedDatedatetime"+datetime,
labelWidth: 100
});
Ext.getCmp('form').add(selectedDate);
datetime++;
break;
case'date' :
var selectedDate = Ext.create('Ext.form.DateField',//日期格式
name:"selectedDatedate"+date,
labelWidth: 100
});
Ext.getCmp('form').add(selectedDate);
date++;
break;
case 'include1':
include1++;
break;
case 'include2' :
include2++;
break;
case 'include3' :
Ext.Ajax.request({
url:"createNewForm/createNewForm!accquireRefForm.action?refFormId=" + refFormId,
success:function(response){
var trim = Ext.JSON.decode(response.responseText.trim());
var arrLen = trim.length;
for(var i=0;i<arrLen;i++){
var fieldsNames = trim[i].fieldsNames;
var data = trim[i].data;
length = fieldsNames.length;
var columModel =trim[i].columModel;
var cmObj = new Array();
for(var i=0;i<columModel.length;i++){
cmObj.push(eval('('+columModel[i]+')'));
}
for(var i=0;i<data.length;i++){
dataObj.push(eval('('+data[i]+')'));
}
var store = Ext.create('Ext.data.Store',{
fields:fieldsNames,
data:dataObj,
proxy: {
type: 'ajax',
reader: {
type: 'json'
}
}
});
var id = "configGrid"+(include3-1);
Ext.getCmp(id).reconfigure(store,cmObj);
}
}
});
var rowEditing = Ext.create('Ext.grid.plugin.RowEditing',{
clicksToMoveEditor: 1,
autoCancel: false,
saveBtnText: '加入数据库',
cancelBtnText: "取消并删除该行",
autoRecoverOnCancel: true //是否在取消编辑的时候自动删除添加的记录
/*listeners: {
canceledit: function (editor,e,eOpts) {//取消则删除添加的行
e.store.remove(e.record);
grid.view.refresh();//该行用于在删除一行后,使整个grid进行刷新,使行序号重新排列。
}
}*/
});
function doadd(){
var store = grid.getStore();
var n=store.getCount();
var data = dataObj;
store.insert(n,data);
rowEditing.cancelEdit();
rowEditing.startEdit(0,0);
rowEditing.validateEdit();
}
var grid = Ext.create("Ext.grid.Panel",{
id : 'configGrid'+include3,
name : 'configGrid'+include3,
title: tName,
forceFit:true,//自动填充panel的空白
columns : [],
displayInfo : true,
emptyMsg : "没有数据显示",
items : [],
width:639,
height:200,
autoScroll:true,
plugins: [rowEditing],
tbar:[
{text:'新增',width:100,iconCls:'user_add',handler : doadd}]
});
Ext.getCmp('form').add(grid);
include3++;
break;
case 'relationship' :
relationship++;
break;
}
}

function toCreateFunctionTwo(tp,
success:function(response){
var trim = Ext.JSON.decode(response.responseText.trim());
var arrLen = trim.length;
for(var i=0;i<arrLen;i++){
var fieldsNames = trim[i].fieldsNames;
var data = trim[i].data;
length = fieldsNames.length;
var columModel =trim[i].columModel;
var cmObj = new Array();
for(var i=0;i<columModel.length;i++){
cmObj.push(eval('('+columModel[i]+')'));
}
for(var i=0;i<data.length;i++){
dataObj.push(eval('('+data[i]+')'));
}

var store = Ext.create('Ext.data.Store',eOpts) {//取消则删除添加的行
e.store.remove(e.record);
grid.view.refresh();//该行用于在删除一行后,使整个grid进行刷新,使行序号重新排列。
}
}*/
});

function doadd(){
var store = grid.getStore();
var n=store.getCount();
var data = dataObj;
store.insert(n,
tbar:[
{text:'新增',handler : doadd}]
});
Ext.getCmp('form').add(grid);
include3++;
break;
case 'relationship' :
relationship++;
break;
}
}

}
});

formPanel.render(document.body);
});


上面的代码实现了根据formId查找对应的数据url:"createNewForm/createNewForm!viewFormProptpdata.action?form_id="+form_id,,进行显示,然后将可能显示的多个输入形式的输入数据以数组参数形式,提交到后台url:'createNewForm/createNewForm!addNewValue.action',。

涉及到Extjs从后台取值,以及Extjs传值到后台,还有不同的输入取值,封装等Extjs数据处理。

关于Extjs的取值加载以及输入之后的ajax提交数据的更多相关文章

  1. HTML5新增form控件和表单属性实例代码详解

    这篇文章主要介绍了HTML5新增form控件和表单属性实例代码详解,需要的朋友可以参考下

  2. HTML5表单验证特性(知识点小结)

    这篇文章主要介绍了HTML5表单验证特性的一些知识点,本文通过实例代码截图的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. amazeui页面分析之登录页面的示例代码

    这篇文章主要介绍了amazeui页面分析之登录页面的示例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  4. ios – OpenCV构建问题,找不到ext/atomicity.h

    我得到编译器错误抱怨在构建包含OpenCV的项目时.环境是针对iOS的Xcode4.5.它为模拟器编译良好,但在为设备构建时失败.这是错误文本:我正在使用opencv2.framework,使用指令here构建cmake.解决方法默认情况下,XCode4.5使用libc(支持C11的LLVMC标准库)生成要构建的新项目.但OpenCV期望针对GNUlibstd

  5. ios – Swift Eureka Form中的循环

    我正在构建一个Eureka表单,并希望在表单中放置一个循环来构建基于数组的步进器列表.我试图使用的代码是:但是,当我这样做时,我在StepperRow行上出现了一个错误:所以看起来Swift不再认为它在形式之内并且正在关注

  6. 应用程序关闭时的iOS任务

    我正在构建一个应用程序,通过ajax将文件上传到服务器.问题是用户很可能有时不会有互联网连接,并且客户希望在用户重新连接时安排ajax调用.这可能是用户在离线时安排文件上传并关闭应用程序.应用程序关闭时可以进行ajax调用吗?

  7. swift 上传图片和参数 upload image with params

    Alamofire.upload(urlRequest.0,urlRequest.1).progress{(bytesWritten,totalBytesWritten,totalBytesExpectedToWrite)inprintln("\(totalBytesWritten)/\(totalBytesExpectedToWrite)")}}

  8. swift – 使用PostgreSQL在Vapor 3中上传图片

    我正在关注这些家伙MartinLasek教程,现在我正在“图片上传”.似乎没有人能回答“如何上传iVapor3图像”的问题Db连接正常,所有其他值都保存.这是我的创建方法:和型号:}和叶子模板:我知道需要一种管理文件的方法和原始图像字节,但我怎么去那里?这使用多部分表单的自动解码:upload.leaf文件是:使用File类型可以访问上载文件的本地文件名以及文件数据.如果将其余的Question字段添加到ExampleUpload结构中,则可以使用该路径捕获整个表单的字段.

  9. Android Studio 2.3更新:警告:使用不兼容的插件进行注释处理:android-apt.这可能会导致意外行为

    所以,我已经阅读了本网站上有关此问题的所有问题.我还与其中一位有类似问题的开发人员聊天,他能够解决这个问题.我没有在我的gradle脚本中编写apt或annotationProcessor.我的代码中没有任何地方写过android-apt这个词.我甚至继续检查了所有的库.这包含在我的项目中.这是一个非常大的问题,需要解决.我在下面附加修改后的build.gradle,请建议:解决方法较旧版本的Re

  10. 如何在Picasso库中实现Pinch Zoom?

    我在我目前的项目http://square.github.io/picasso/中使用Picasso库.一切都运行正常,但我无法弄清楚如何为从URL加载的所有图像实现PinchZoom.说实话,我甚至不知道在哪里放置onClickListener.我的应用程序有几个片段,每个片段都有2个选项卡,第一个选项卡有一个ListView,第二个选项卡有一些显示在GridView中的图片:Bmw.javaS

随机推荐

  1. xe-ajax-mock 前端虚拟服务

    最新版本见Github,点击查看历史版本基于XEAjax扩展的Mock虚拟服务插件;对于前后端分离的开发模式,ajax+mock使前端不再依赖后端接口开发效率更高。CDN使用script方式安装,XEAjaxMock会定义为全局变量生产环境请使用xe-ajax-mock.min.js,更小的压缩版本,可以带来更快的速度体验。

  2. vue 使用 xe-ajax

    安装完成后自动挂载在vue实例this.$ajaxCDN安装使用script方式安装,VXEAjax会定义为全局变量生产环境请使用vxe-ajax.min.js,更小的压缩版本,可以带来更快的速度体验。cdnjs获取最新版本点击浏览已发布的所有npm包源码unpkg获取最新版本点击浏览已发布的所有npm包源码AMD安装require.js安装示例ES6Module安装通过Vue.use()来全局安装示例./Home.vue

  3. AJAX POST数据中文乱码解决

    前端使用encodeURI进行编码后台java.net.URLDecoder进行解码编解码工具

  4. Koa2框架利用CORS完成跨域ajax请求

    实现跨域ajax请求的方式有很多,其中一个是利用CORS,而这个方法关键是在服务器端进行配置。本文仅对能够完成正常跨域ajax响应的,最基本的配置进行说明。这样OPTIONS请求就能够通过了。至此为止,相当于仅仅完成了预检,还没发送真正的请求呢。

  5. form提交时,ajax上传文件并更新到&lt;input&gt;中的value字段

  6. ajax的cache作用

    filePath="+escape;},error:{alert;}});解决方案:1.加cache:false2.url加随机数正常代码:网上高人解读:cache的作用就是第一次请求完毕之后,如果再次去请求,可以直接从缓存里面读取而不是再到服务器端读取。

  7. 浅谈ajax上传文件属性contentType = false

    默认值为contentType="application/x-www-form-urlencoded".在默认情况下,内容编码类型满足大多数情况。在这里,我们主要谈谈contentType=false.在使用ajax上传文件时:在其中先封装了一个formData对象,然后使用post方法将文件传给服务器。说到这,我们发现在JQueryajax()方法中我们使contentType=false,这不是冲突了吗?这就是因为当我们在form标签中设置了enctype=“multipart/form-data”,

  8. 909422229_ajaxFileUpload上传文件

    ajaxFileUpload.js很多同名的,因为做出来一个很容易。我上github搜AjaxFileUpload出来很多类似js。ajaxFileUpload是一个异步上传文件的jQuery插件传一个不知道什么版本的上来,以后不用到处找了。语法:$.ajaxFileUploadoptions参数说明:1、url上传处理程序地址。2,fileElementId需要上传的文件域的ID,即的ID。3,secureuri是否启用安全提交,默认为false。4,dataType服务器返回的数据类型。6,error

  9. AJAX-Cache:一款好用的Ajax缓存插件

    原文链接AJAX-Cache是什么Ajax是前端开发必不可少的数据获取手段,在频繁的异步请求业务中,我们往往需要利用“缓存”提升界面响应速度,减少网络资源占用。AJAX-Cache是一款jQuery缓存插件,可以为$.ajax()方法扩展缓存功能。

  10. jsf – Ajax update/render在已渲染属性的组件上不起作用

    我试图ajax更新一个有条件渲染的组件。我可以确保#{user}实际上是可用的。这是怎么引起的,我该如何解决呢?必须始终在ajax可以重新呈现之前呈现组件。Ajax正在使用JavaScriptdocument.getElementById()来查找需要更新的组件。但是如果JSF没有将组件放在第一位,那么JavaScript找不到要更新的内容。解决方案是简单地引用总是渲染的父组件。

返回
顶部