/** * 共同方法 *
/**
* 功能描述: 下拉框值变化 使用例子:
*
* <pre>
* onSelectOptionsChange({
* id : "userDefineType", // 下拉框id:必需
* url : "${ctx}/help/save",// url:必需
* itemValue : "value", // 返回值的value值字段名,必需
* itemLabel : "label", // 返回值的label值字段名,必需
* // param: {}, // 参数:非必需
* // emptyOption: true, // 是否包含空选项,默认false
* // beforeAppendOption: function(data) {
* // return data;
* // },// 后台返回数据时特殊处理
* // afterSuccess: function() {},// 处理结束后回调,非必需
* // async: false, // 是否异步,默认true
* });
* </pre>
*/
function onSelectOptionsChange(options) {
if (!options.url) {
alertError("缺少参数: url");
return;
}
if (!options.id) {
alertError("缺少参数: id");
return;
}
if (!options.itemValue) {
alertError("缺少参数: itemValue");
return;
}
if (!options.itemLabel) {
alertError("缺少参数: itemLabel");
return;
}
options.async = options.async == false ? options.async : true;
httpRequest({
url: options.url,
data: options.param,
async: options.async,
success: function (data) {
if (options.beforeAppendOption) {
var returnData = options.beforeAppendOption(data);
if (returnData) {
data = returnData;
}
}
var id = "#" + options.id;
var oriVal = $(id).val();
var val = null;
$(id + " option").remove();
if (options.emptyOption == true) {
$(id).append("<option value=''></option>");
}
for (item of data) {
if (oriVal == item[options.itemValue]) {
val = item[options.itemValue];
}
$(id).append("<option value='" + item[options.itemValue] + "'>" + item[options.itemLabel] + "</option>");
}
if (val != null) {
$(id).val(val);
}
if (options.afterSuccess) {
options.afterSuccess(data);
}
return true;
},
});
}
例子:
$("#userDefineType").val("");
onSelectOptionsChange({
id: "userDefineType", // 下拉框id:必需
url: "${ctx}/wave/waveType/query",// url:必需
itemValue: "typeCode", // 返回值的value值字段名,必需
itemLabel: "typeName", // 返回值的label值字段名,必需
param: {whCd: data[0].whCd}, // 参数:非必需
emptyOption: true, // 是否包含空选项,默认false
// afterSuccess: function(){},// 处理结束后回调,非必需
async: false, // 是否异步,默认true
});
<select id="userDefineType" name="userDefineType" class="input-small" style="height:20px; margin-bottom: 8px;"><select>