问题:

在使用el表达式给表单中的项赋初始值的时候,总是失败,物流公司没有自动选中,物流单号也没有显示值。

<form id="form" method="post">
。。。。
<tr>
<th>物流公司:</th>
<td>
<select id="shippingCompany" name="shippingCompany" class="easyui-combobox" style="width: 171px;" data-options="required:true">
<c:choose>
<c:when test='${not empty brand}'>
<c:forEach var="lc" items="${logisticsCorporations}">
<c:choose>
<c:when test='${brand.shippingCompany eq lc.logisticsId}'>
<option value="${lc.logisticsId }" selected="selected">${lc.logisticsName }</option>
</c:when>
<c:otherwise>
<option value="${lc.logisticsId }" >${lc.logisticsName }</option>
</c:otherwise>
</c:choose>
</c:forEach>
</c:when>
<c:otherwise>
<c:forEach var="lc" items="${logisticsCorporations}">
<option value="${lc.logisticsId }" >${lc.logisticsName }</option>
</c:forEach>
</c:otherwise>
</c:choose>
</select>
</td>
</tr>
<tr>
<th>物流单号:</th>
<td><input name="shippingSn" id="shippingSn"
class="easyui-textbox easyui-validatebox" type="text"
value="${brand.shippingSn }" required="required"/></td>
</tr>
</form>

调查:

1、当我把class="easyui-combobox"和class="easyui-textbox easyui-validatebox"属性去掉以后,就正常了。怀疑是easyui冲突了。

2、当我把form标签删掉,或者把form的id属性改个名字,也正常了,怀疑是jQuery在使用form的时候造成的冲突。

3、继续调查,当前页面其实是一个编辑页面,它是这样在父页面中被打开的:

//发货
function ship() {
var row = $dg.datagrid('getSelected');
if (row) {
parent.$.modalDialog({
title : '编辑订单信息',
width : 600,
height : 270,
href : "${pageContext.request.contextPath}/orders/showShip?orderId="+row.orderId+"&orderInfoId="+row.orderInfoId,
onLoad:function(){
var f = parent.$.modalDialog.handler.find("#formx");
f.form("load", row);
},
buttons : [ {
text : '确定',
iconCls : 'icon-ok',
handler : function() {
parent.$.modalDialog.openner= $grid;//因为添加成功之后,需要刷新这个dataGrid,所以先预定义好
var f = parent.$.modalDialog.handler.find("#form");
f.submit();
}
}, {
text : '取消',
iconCls : 'icon-cancel',
handler : function() {
parent.$.modalDialog.handler.dialog('destroy');
parent.$.modalDialog.handler = undefined;
}
}
]
});
}else{
parent.$.messager.show({
title :"提示",
msg :"请选择一行记录!",
timeout : 1000 * 2
});
}
}

dg是一个datagrid表格,我们的编辑页面就是编辑dg选中的一行数据。注意onLoad方法,在数据加载完毕以后,有一个f.form("load",row)方法,该方法能够自动将这行数据的各属性值填充到编辑页面的相应表单项中。

这本质上与我们在编辑页面中使用el表达式给表单项赋值就冲突了,也就是说,你要么使用f.form("load",row)给表单项赋值,要么使用el表达式给表单项赋值,只能选一个。

解决:

去掉onLoad方法。

jQuery form的load函数与el表达式赋值的冲突问题的更多相关文章

  1. jsp页面获取参数的方法(url解析、el表达式赋值、session取值)【原创】

    最近使用myEclispse做网站,使用jsp+js+css做页面,网站中常用到从列表进入详情页面的跳转,下面对详情页面的值填充方式做一个简单总结: 1.url中使用request获取参数 jsp上方 ...

  2. JSP页面JSTL提供的函数标签EL表达式操作字符串的方法

    首先在jsp页面导入标签<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions&quo ...

  3. Ruby页面,循环赋值方法(类似java EL表达式赋值)

    ------------前台代码--------------- <% @form_hash.each_with_index do |f,index| %> <% item = f[: ...

  4. EasyUI之Form load函数IE8下设置Radio或Checkbox的BUG

    EasyUI的form的load函数很好用,表单赋值就靠它了,简单方便.我们可以指定url以Ajax加载,如: 1: $('#ff').form('load', 'ajax/common') JSON ...

  5. 关于jQuery.form中formSerialize()等函数的适用对象

    几个月前写一个页面,要用到Ajax提交,于是写了几行jQuery: …… var formData = $("form")[0].formSerialize(); …… 然后死活调 ...

  6. [应用篇]第一篇 EL表达式入门

    概念 EL表达式:EL 全名为Expression Language,就是为了替代<%= %>脚本表达式. 作用 获取数据: EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的 ...

  7. EL表达式,JSTL:jsp standard Tag Library

    1.EL表达式的作用: 1.1访问Bean的属性.  方式一:${对象名 . 属性名} eg:${user.name}    方式二:${对象名["属性名"]} 1.2输出简单的运 ...

  8. EL表达式 JSTL中的常用EL函数 动态数据的国际化

    ELppt: EL 全名为Expression Language.EL主要作用: 获取数据: •EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数据.( ...

  9. JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】

    什么是EL表达式? 表达式语言(Expression Language,EL),EL表达式是用"${}"括起来的脚本,用来更方便的读取对象! EL表达式主要用来读取数据,进行内容的 ...

随机推荐

  1. am335x Watchdog 生效导致 LAN8710A action 异常

    原因是因为 watchdog 生效的时候,产生的 reset 信号,只有 2.5us 左右,太短了,导致 LAN8710a 未完全重启 在 kernel watchdog 里面增加下面的代码即可 86 ...

  2. Android——监听事件总结

    各种监听事件 1.按钮 Button(1)点击监听 btn_1.setOnClickListener(new View.OnClickListener() { (2)长按监听 btn_1.setOnL ...

  3. html5的UI框架

    http://www.idangero.us/framework7/ http://goratchet.com/ http://cnratchet.com/ http://amazeui.org/ h ...

  4. unix的sed 用法介绍

    sed是一个非交互性性文本编辑器,它编辑文件或标准输入导出的文件拷贝.标准输入可能是来自键盘.文件重定向.字符串或变量,或者是一个管道文件.sed可以随意编辑小或大的文件,有许多sed命令用来编辑.删 ...

  5. oracle快速创建可用用户

    执行语句 create user utaptest identified by utaptest; create tablespace utaptestspace datafile 'd:\data. ...

  6. hbase源码系列(十三)缓存机制MemStore与Block Cache

    这一章讲hbase的缓存机制,这里面涉及的内容也是比较多,呵呵,我理解中的缓存是保存在内存中的特定的便于检索的数据结构就是缓存. 之前在讲put的时候,put是被添加到Store里面,这个Store是 ...

  7. QVariant类及QVariant与自定义数据类型转换的方法

    这个类型相当于是Java里面的Object,它把绝大多数Qt提供的数据类型都封装起来,起到一个数据类型“擦除”的作用.比如我们的 table单元格可以是string,也可以是int,也可以是一个颜色值 ...

  8. 《FPGA全程进阶---实战演练》第十二章 二进制码与格雷码PK

    大家在写程序的时候,可能会听闻,什么独热码,什么格雷码,什么二进制码等等,本节意在解释这几种编码之间的区别和优势以及用verilog怎么去实现,下面先介绍这几种编码的区别. 1 基础理论部分 1.1 ...

  9. 第三百四十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫数据保存

    第三百四十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫数据保存 注意:数据保存的操作都是在pipelines.py文件里操作的 将数据保存为json文件 spider是一个信号检测 ...

  10. Lucene系列三:Lucene分词器详解、实现自己的一个分词器

    一.Lucene分词器详解 1. Lucene-分词器API (1)org.apache.lucene.analysi.Analyzer 分析器,分词器组件的核心API,它的职责:构建真正对文本进行分 ...