这个html提供的是option value是 pojo里的属性,pojo的表示直接带属性的,不是通过left join要素表,因此自己想到的方法
改变name的属性值,用到的是
var inputE = jQuery("input[name='f_conditionStr']").attr("name", s)
这个jQuery方法可以改变name值,通过,通过 获取select标签的ID获得值,注入到
name="f_conditionStr
中,后台设个pojo得到值
上半部分是半成品,下面是主要的 ,这个是name传值查询
<script type="text/javascript">
<%-- $(document).ready(function(){
$("#f_type").change(function(){
var s=$("#f_type").val();
alert(s);
var inputE = jQuery("input[name='f_conditionStr']").attr("name", s);
});
}); --%>
$(document).ready(function(){
$("#btnFind").click(function(){
var s=$("#f_type").val();
var inputE = jQuery("input[name='f_conditionStr']").attr("name", s);
var v=$("#f_conditionStr").val();
alert(v);
var v2=$("#copy_f_conditionStr").val(v);
alert(v2);
})
});
</script>
这个选的是回显
后台用两个方法,一个是进入页面查询,一个为条件查询,使用提交后,name=fttype,如果是请选择,则是空值,其他对应的value,后台要设置model返回对应的
factoryName
contacts
fullName
这个时候要注意了,刚进入页面的时候 name=fttype,还是factoryname,contacts,fullname都是是空值,这样的话如果不判断的话,就不知道选项就比较乱
<c:if test="${ftype==null}">selected</c:if>selected>
<c:if test="${ftype !=null && factoryName !=null && ftype==factoryName}">selected</c:if>
……
如果想看后台传入的是什么值,用
4<c:out value="${ftype}"></c:out>
这个标签,
内容回显
将内容的
id="f_conditionStr
用jQuery传上去.
在回传,这里的name因为是变动的,而ID不变,可以得到value,再设置一个hidden<input>把name传到后台
,在回显到
value="${copy_f_conditionStr }" size="30" id="f_conditionStr"
类型:
<select name="ftype" style="width:130px;heigh:30px;" dataType="下拉列表" dispName="查询条件" id="f_type" " >
<option value="" <c:if test="${ftype==null}">selected</c:if>selected>
--请选择--
</option>
<option value='factoryName' <c:if test="${ftype !=null && factoryName !=null && ftype==factoryName}">selected</c:if>>简称 </option>
<option value='contacts'<c:if test="${ftype !=null && contacts !=null && ftype==contacts}">selected</c:if>>联系人</option>
<option value='fullName'<c:if test="${ftype !=null && fullName !=null && ftype==fullName}">selected</c:if>>全称</option>
</select>
<!-- 测试 -->
<c:if test="${ftype=='factoryName'}">${factoryName==null}</c:if>
1<c:out value="${contacts}"></c:out>
2<c:out value="${ftype==contacts}"></c:out>
3<c:out value="${ftype==''}"></c:out>
4<c:out value="${ftype}"></c:out>
内容:
<input type="text" name="f_conditionStr" value="${copy_f_conditionStr }" size="30" id="f_conditionStr"
onFocus="this.select();"
onKeyDown="javascript:if(event.keyCode==13){ document.getElementById('btnFind').onclick(); }"
/>
<input id="copy_f_conditionStr" value="" name="copy_f_conditionStr" type="hidden"/>
<input id="btnFind" type="submit" value="查询" />
<input type="button" name="清空" value="清空" οnclick="findReset();this.blur();">
</div>
public class FactoryCController {
@Autowired
private IFactoryCService iFactoryCService;
@RequestMapping("/basicinfo/factory/jFactoryList.action")
public String tolist(Model model){
List<FactoryC> list = iFactoryCService.selectfactoryall(null);
model.addAttribute("datalist", list);
return "/basicinfo/factory/jFactoryList";
}
@RequestMapping("/basicinfo/factory/FactoryList.action")
public String tofind(Model model,FactoryC factoryC,String ftype,String copy_f_conditionStr){
List<FactoryC> list = iFactoryCService.selectfactoryall(factoryC);
model.addAttribute("ftype", ftype);
model.addAttribute("factoryName", "factoryName");
model.addAttribute("contacts", "contacts");
model.addAttribute("fullName", "fullName");
model.addAttribute("datalist", list);
model.addAttribute("copy_f_conditionStr", copy_f_conditionStr);
return "/basicinfo/factory/jFactoryList";
}
分页时。设置js,因为有两次
var s=$("#f_type").val();
var inputE = jQuery("input[name='f_conditionStr']").attr("name", s);
导致后去开始是空,下个才有值,有一条弯路
<script type="text/javascript">
/* $(document).ready(function(){
var s=$("#f_type").val();
var inputE = jQuery("input[name='f_conditionStr']").attr("name", s);
}) */
window.οnlοad=function(){
var s=$("#f_type").val();
var inputE = jQuery("input[name='f_conditionStr']").attr("name", s);
}
function search(){
var s=$("#f_type").val();
var inputE = jQuery("input[name='f_conditionStr']").attr("name", s);
var v=$("#f_conditionStr").val();
var v2=$("#copy_f_conditionStr").val(v);
}
</script>
做pojo自身的属性,及直接把selected的name传入后台,通过if判断,设值
,回传给前端