JavaScript表单填写时,数据索引筛选自动填写功能效果

       在开发中,经常需要在做索引操作,比如根据某ID的部分数字去索引出类似该ID的所有相关数据,然后选择其中一条,就会将该ID的整条数据自动填写到对应的表单中。


JavaScript代码:

<script type="text/javascript">

$(function() {
	$("#id").keyup(function(){
	   	var id = $.trim($(this).val());
	   	if(id != ""){
	       	$.post('----url----test.action',{"对象.id":id},function(data){
		           $("#id").autocomplete({
				 source: initAutoComplete(data),//设置选择时的显示数据
	            	         maxHeight:100,
	             		 select: function(e, ui){
				         var noName = ui.item.value;     //选中的那个value值  
	            				if(noName != null) {
	           				   setValue(data,noName);//将选中的数据自动填充
	           				}
	           			}
	           		});      		
	        	},"json"); 
	    	}
	 });
});

<pre name="code" class="javascript">function initAutoComplete(json){
		var availableTags = [];
	       $.each(json, function(i) {
	       	var row = {label: "【对象ID】"+json[i].id + "【对象名称】"+json[i].name,value: json[i].id};
	        availableTags.push(row);
	   	});
	       return availableTags;
    }
function setValue(data,noName){ $.each(data, function(i) { if(data[i].id == noName){if($("#id").val() == "") $("#id").val(data[i].id); if($("#name").val() == "") $("#name").val(data[i].name); }});}</script>

 后台代码: 

1.

public void test() {
		String result = entityService.findById(对象.getId());//此处后台为模糊查询
		Struts2Utils.renderJson(result);
	}
2.

public String findById(对象 entity) {
		String result = null;
		List<对象> list = entityDAO.findByLikeNo(对象.getId());
		if(list != null){
			JsonConfig jsonConfig = new JsonConfig();
			jsonConfig.registerJsonValueProcessor(Date.class,new JsonDateValueProcessor());
			result = JSONArray.fromObject(list, jsonConfig).toString();
		}
		return result;
	}

其他java文件和jar

public class JsonDateValueProcessor implements JsonValueProcessor{
	    private String datePattern = "yyyy-MM-dd";
	    public JsonDateValueProcessor() {
	        super();
	    } 
	    public JsonDateValueProcessor(String format) {
	        super();
	        this.datePattern = format;
	    }
	    public Object processArrayValue(Object value, JsonConfig jsonConfig) {
	        return process(value);
	    }
	    public Object processObjectValue(String key, Object value,
	            JsonConfig jsonConfig) {
	        return process(value);
	    }

	    private Object process(Object value) {
	        try {
	            if (value instanceof Date) {
	                SimpleDateFormat sdf = new SimpleDateFormat(datePattern,Locale.UK);
	                return sdf.format((Date) value);
	            }
	            return value == null ? "" : value.toString();
	        } catch (Exception e) {
	            return "";
	        }

	    }
	    public String getDatePattern() {
	        return datePattern;
	    }
	    public void setDatePattern(String pDatePattern) {
	        datePattern = pDatePattern;
	    }

}

需要    json-lib-2.1.jar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郝南过

感谢大佬打赏,送你一个么么哒

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值