类似于这种
 
 直接上代码 列表框
    <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
                })
            }
        })
    }
}
















