드롭다운 UI 개선: 검색 필드 다중화 지원 추가 및 필터링 로직 수정, 입력 필드 및 드롭다운 크기 조정

dev
박성영 4 months ago
parent c912504d38
commit c04ca3c631

@ -50,7 +50,7 @@
<tr>
<th class="th">위반법규1</th>
<td colspan="3">
<input type="text" id="vltnLwrgNm1" name="vltnLwrgNm1" class="input" style="width: 200px;" placeholder="위반법규를 입력하거나 선택하세요" autocomplete="off" value="${data.vltnLwrgCd1Nm}"/>
<input type="text" id="vltnLwrgNm1" name="vltnLwrgNm1" class="input" style="width: 250px;" placeholder="위반법규를 입력하거나 선택하세요" autocomplete="off" value="${data.vltnLwrgCd1Nm}"/>
<input type="hidden" id="vltnLwrgCd1" name="vltnLwrgCd1" value="${data.vltnLwrgCd1}"/>
</td>
<%--<th class="th">위반법규2</th>
@ -62,12 +62,12 @@
<tr>
<th class="th">구조지수</th>
<td>
<input type="text" id="strctIdxNm" name="strctIdxNm" class="input" style="width: 200px;" placeholder="구조명을 입력하거나 선택하세요" autocomplete="off" value="${data.strctIdxCdNm}"/>
<input type="text" id="strctIdxNm" name="strctIdxNm" class="input" style="width: 250px;" placeholder="구조명을 입력하거나 선택하세요" autocomplete="off" value="${data.strctIdxCdNm}"/>
<input type="hidden" id="strctIdxCd" name="strctIdxCd" value="${data.strctIdxCd}"/>
</td>
<th class="th">용도지수</th>
<td>
<input type="text" id="usgNm" name="usgNm" class="input" style="width: 200px;" placeholder="용도명을 입력하거나 선택하세요" autocomplete="off" value="${data.usgIdxCdNm}"/>
<input type="text" id="usgNm" name="usgNm" class="input" style="width: 250px;" placeholder="용도명을 입력하거나 선택하세요" autocomplete="off" value="${data.usgIdxCdNm}"/>
<input type="hidden" id="usgIdxCd" name="usgIdxCd" value="${data.usgIdxCd}"/>
</td>
</tr>
@ -158,7 +158,7 @@
inputSelector: '#strctIdxNm',
hiddenSelector: '#strctIdxCd',
dataUrl: '<c:url value="/crdn/crndRegistAndView/crdnActInfo/getAllStrctIdx.ajax"/>',
width: '500px',
width: '450px',
maxHeight: '300px',
valueField: 'strctIdxCd',
textField: 'strctNm',
@ -209,11 +209,11 @@
inputSelector: '#vltnLwrgNm1',
hiddenSelector: '#vltnLwrgCd1',
dataUrl: '<c:url value="/crdn/crndRegistAndView/crdnActInfo/getAllVltnLwrg.ajax"/>',
width: '400px',
width: '350px',
maxHeight: '300px',
valueField: 'vltnLwrgCd',
textField: 'vltnLaw',
searchField: 'vltnLaw',
searchField: ['vltnLaw', 'vltnLwrgNm', 'crcLaw', 'impltLaw'], // 여러 필드에서 검색 가능
placeholder: '위반법규를 입력하거나 선택하세요',
noResultsText: '검색 결과가 없습니다',
cssClass: 'vltn-lwrg-dropdown',
@ -247,7 +247,7 @@
inputSelector: '#vltnLwrgNm2',
hiddenSelector: '#vltnLwrgCd2',
dataUrl: '<c:url value="/crdn/crndRegistAndView/crdnActInfo/getAllVltnLwrg.ajax"/>',
width: '400px',
width: '350px',
maxHeight: '300px',
valueField: 'vltnLwrgCd',
textField: 'vltnLwrgNm',
@ -290,7 +290,7 @@
inputSelector: '#usgNm',
hiddenSelector: '#usgIdxCd',
dataUrl: '<c:url value="/crdn/crndRegistAndView/crdnActInfo/getAllUsgIdx.ajax"/>',
width: '500px',
width: '373px',
maxHeight: '300px',
valueField: 'usgIdxCd',
textField: 'usgNm',

@ -949,17 +949,27 @@ XitDropdown.prototype = {
/**
* 데이터 필터링
* 중요한 로직 주석: 검색어에 따라 데이터를 필터링한다.
* 중요한 로직 주석: 검색어에 따라 데이터를 필터링한다. searchField가 배열인 경우 여러 필드에서 검색한다.
*/
filterData: function(searchTerm) {
var term = searchTerm.trim().toLowerCase();
var searchField = this.options.searchField;
var searchFields = this.options.searchField;
var self = this;
if (term === '') {
this.filteredData = this.data;
} else {
this.filteredData = this.data.filter(function(item) {
return item[searchField] && item[searchField].toString().toLowerCase().indexOf(term) > -1;
// searchField가 배열인지 확인
if (Array.isArray(searchFields)) {
// 배열인 경우: 여러 필드 중 하나라도 검색어가 포함되면 true (OR 조건)
return searchFields.some(function(field) {
return item[field] && item[field].toString().toLowerCase().indexOf(term) > -1;
});
} else {
// 단일 필드인 경우: 기존 로직 유지 (하위 호환성)
return item[searchFields] && item[searchFields].toString().toLowerCase().indexOf(term) > -1;
}
});
}
},

Loading…
Cancel
Save