摘要:
在修改基礎信息的時候,通常會遇到需要修改值為選擇值的時候,這時候,數據庫存的一般是value,而不是顯示的text值,但頁面顯示的時候如果顯示成數字型的值,通常會給人不夠直觀的感覺。因此,要求頁面在加載的時候,根據value,初始化combobox的選擇值。
疑難點:
表單配置值:
{ display: Dictionary.mrl.mrl_class_gid, newline: true, name: "pid", type: "select", comboboxName: "pid_com", options: { textField: 'name', valueField: 'sysno', data: data, onSelected: f_select } }
雖然ligerComboBox({})中有value的方法和屬性,但因為無法通過選擇器定位到該combobox,所以無法實現初始化值。
嘗試1:直接在options中添加value屬性。
{ display: Dictionary.mrl.mrl_class_gid, newline: true, name: "pid", type: "select", comboboxName: "pid", options: { textField: 'name', valueField: 'sysno', data: data, value: "5831531369ef4ec5bfafda73a0ed23c7" } }
結果:失敗,並為加載成功
嘗試2:在formload以后,單獨調用ligerCombobox()方法。
api.loadForm($("#form1"), {
data: fdata
});
setTimeout(function () {
$("#pid_com").ligerComboBox({
data: data,onSelected: f_select,value:fdata.pid
});
}, 100);
結果:失敗。應該是$選擇器的問題。
利用selector將combobox內容打出:
{ "context": { "location": { "hash": "", "search": "?type=modify&sysno=9f8cecaee89a49fdb02f7465f90ea418", "pathname": "/WebFiles/Material/Mrl_Class_Item.html", "port": "26003", "hostname": "localhost", "host": "localhost:26003", "protocol": "http:", "origin": "http://localhost:26003", "href": "http://localhost:26003/WebFiles/Material/Mrl_Class_Item.html?type=modify&sysno=9f8cecaee89a49fdb02f7465f90ea418", "ancestorOrigins": { "0": "http://localhost:26003", "1": "http://localhost:26003" } }, "jQuery19009037283264977614": 1 }, "selector": "#pid_com"
}
可以看到,選擇器是沒有問題的,$("#pid_com"),那通過.val()賦值,不知道會不會成功呢
{"0":{},"length":1,"context":{"location":{"hash":"","search":"?type=modify&sysno=9f8cecaee89a49fdb02f7465f90ea418","pathname":"/WebFiles/Material/Mrl_Class_Item.html","port":"26003","hostname":"localhost","host":"localhost:26003","protocol":"http:","origin":"http://localhost:26003","href":"http://localhost:26003/WebFiles/Material/Mrl_Class_Item.html?type=modify&sysno=9f8cecaee89a49fdb02f7465f90ea418","ancestorOrigins":{"0":"http://localhost:26003","1":"http://localhost:26003"}},"jQuery1900602295770961512":1},"selector":"#pid"} 確定
最終答案:
應該是選擇器用錯,應該用name的方式來獲取控件。 $("[name=pid_com]").val(fdata.pname);