类似于这种
直接上代码 列表框
<td>
//目的主要是获取属性名的(要更改的属性名) 在下面juqery的这一行
(var field = $(thisobj).prev('input').attr('name');)有体现
<input type="hidden" name="voyage" value="${M_PSI_PERIOD_INFO.port}">
//显示原始值 后台传过来的原始值
<h:text name="M_PSI_PERIOD_INFO" property="voyage" styleId="voyage" style="border:none" onchange="update(this)" indexed="true" />
<td>
<input type="hidden" name="demand_shipping_dt" value="${M_PSI_PERIOD_INFO.port}">
//日期格式
<h:dateText name="M_PSI_PERIOD_INFO" property="demand_shipping_dt" styleId="demand_shipping_dt" format="yyyy-MM-dd" displayFormat="yyyy-MM-dd" docType="4" icon="true" onchange="update(this)" style="width:150px;margin-right:10px"/>
</td>
jquery代码
function update(thisobj) {
debugger
var now;
var former;
debugger
if ($(thisobj)[0].tagName == "SELECT") {
//下拉框取更改后的值
now = $(thisobj).val();
}else {
//获取修改过后的值
now = $(thisobj).val();
//获取上一个input框的值(原始值) [prev()方法,获取上一个元素的值]
former = $(thisobj).prev().val();
}
if (now === former) {
$(thisobj).closest("td").removeClass("mouse");
} else {
//修改了 执行以下逻辑
debugger
$(thisobj).closest("td").addClass("mouse");
//获取这一行其他属性的值
var org_id = $(thisobj).closest('tr').find('td').find('input[name="org_id"]').val();
var uid = $(thisobj).closest('tr').find('td').find('input[name="uid"]').val();
var user_id = $(thisobj).closest('tr').find('td').find('input[name="user_id"]').val();
var row_num = $(thisobj).closest('tr').find('td').find('input[name="row_num"]').val();
var inf_type = $(thisobj).closest('tr').find('td').find('input[name="inf_type"]').val();
var m_code = $(thisobj).closest('tr').find('td').find('input[name="m_code"]').val();
//更改的字段名字(属性名称)
var field = $(thisobj).prev('input').attr('name');
var params = {
org_id: org_id,
uid: uid,
user_id: user_id,
row_num: row_num,
inf_type: inf_type,
m_code: m_code
};
//可变参数传值
params[field] = now;
//传递给后台执行更新操作
f.doAjaxResult('atpAdjust.G05001@update', params, function(res) {
debugger
//todo 判断校验长度
if(res.success === undefined){
alert(f.getMessage('KA0050G0500101'));
}
if (res.success) {
debugger
//如果成功 刷新页面 (下面的data可能是搜索框的值,刷新列表页面时,需要将搜索框选择或者输入的参数携带过去进行查询。)
const data = {"org_id": $("#org_id").val(), "psi_period": $("#psi_period").val(),"query_date_type":$("#query_date_type").val()
, "bo_code": $("#bo_code").val(), "country_code": $("#country_code").val(), "orderer_code": $("#orderer_code").val()
, "t_code1": $("#t_code1").val(), "t_code2": $("#t_code2").val(), "t_code3": $("#t_code3").val(), "m_code": $("#m_code").val()
, "group_type1": $("#group_type1").val(), "group_text1": $("#group_text1").val()
, "group_type2": $("#group_type2").val(), "group_text2": $("#group_text2").val()
};
f.doAjaxResult('atpAdjust.G05001@init', {query_data:JSON.stringify(data)}, function (res) {
debugger
})
}
})
}
}