我正在扩展使用fill
函数here以使用选择字段选项填充<select>
元素,以便处理搜索字段。
我的表单中有两个<select>
元素,STATDES
(选择)和OWNERLOGIN
(搜索)。
<div id="container" onchange="fieldChangeHandler(event)">
...
<div class="item" >
<label>Status</label>
<select id="STATDES" onfocus="focusdiv(event)" onblur="defocusdiv(event)"></select>
</div>
<div class="item" >
<label>Assigned to</label>
<select id="OWNERLOGIN" onfocus="focusdiv(event)" onblur="defocusdiv(event)"></select>
</div>
我正在检查zoom
的{{1}}属性,以确定我是否应该从column
或searchObj.ChooseLine
对象进行阅读。
searchObj.SearchLine
function fill(el, sel){
switch (myForm.columns[el.id].zoom){
case "Choose":
myForm.choose(el.id, sel).then(
function (searchObj) {
var i, ch;
$('#'+el.id).empty();
for (i in searchObj.ChooseLine) {
ch = searchObj.ChooseLine[i];
if (ch.string1 == sel){
$("#"+el.id).append('<option selected value="'+ ch.string1 +'">'+ ch.string1 +'</option>');
} else {
$('#'+el.id).append('<option value="'+ ch.string1 +'">'+ ch.string1 +'</option>');
};
};
},
showMessage
);
break;
case "Search":
myForm.choose(el.id, sel).then(
function (searchObj) {
var i, ch;
$('#'+el.id).empty();
for (i in searchObj.SearchLine) {
ch = searchObj.SearchLine[i];
if (ch.string2 == sel){
$("#"+el.id).append('<option selected value="'+ ch.string2 +'">'+ ch.string2 +'</option>');
} else {
$('#'+el.id).append('<option value="'+ ch.string2 +'">'+ ch.string2 +'</option>');
};
};
},
showMessage
);
break;
};
};
上的choose
函数会返回STATDES
个对象。
searchObj.ChooseLine
上的choose
函数会返回OWNERLOGIN
个对象。
但的缩放类型均为searchObj.SearchLine
。
Choose
我如何区分?
答案 0 :(得分:1)
您可以声明一个变量以包含搜索结果,并分配SearchLine
或ChooseLine
结果之一,具体取决于存在的结果。然后只需使用该变量。
myForm.choose(el.id, sel).then(
function (searchObj) {
const searchResults = searchObj.SearchLine ? searchObj.SearchLine : searchObj.ChooseLine;
var i, ch;
$('#'+el.id).empty();
for (i in searchResults) {
ch = searchResults[i];
...
}
},showMessage);
如果您想知道该字段是否为搜索字段(并使用searchAction方法),您只需检查SearchLine
结果中SearchObj
的存在性。< / p>
const isSearchField = searchObj.SearchLine !== undefined
答案 1 :(得分:0)
当有大量选择结果时,Web-SDK将返回一个Search对象,以便即使zoom=Choose
也可以处理搜索。因此@naomi建议正确的方法来判断结果是选择还是搜索是检查结果对象是否包含Searchline
或Chooseline
。