내 사이트에서 양식을 설정하려고하는데 일부 동적 드롭 다운을 사용하고 싶습니다.selectize.js의 ID를 양식으로 가져 오기
Selectize.js가 좋은 해결책 인 것처럼 보였습니다. 그러나 양식을 게시 할 때 선택한 옵션에서 ID를 가져 오는 방법을 찾는 데 어려움을 겪고 있습니다. 사용자의
으로는 "바나나"를 선택하고 selectize은 물론 createFilter
는 그래서는 아무 이동 없습니다 엉망이 그러나 valueField
'id'
에 변경하는 것입니다 후
확실한 대답을 값으로 2를 반환해야합니다 ..
나는 내가 지금까지 무엇을 가진 jsfiddle을했습니다 : http://jsfiddle.net/imfpa/Lh3anheq/16/
HTML :
<form>
<select id="item-type" placeholder="Choose type...">
</select>
</form>
자바 스크립트 :
function hasOwnPropertyCaseInsensitive(obj, property) {
var props = [];
for (var i in obj) if (obj.hasOwnProperty(i)) props.push(i);
var prop;
while (prop = props.pop()) if (prop.toLowerCase() === property.toLowerCase()) return true;
return false;
}
var REGEX = '[a-zA-ZæøåÆØÅ][a-zA-ZæøåÆØÅ ]*[a-zA-ZæøåÆØÅ]';
$('#item-type').selectize({
persist: true,
valueField: 'text',
labelField: 'text',
searchField: ['text'],
options: [
{id: '1', text: 'Apple'},
{id: '2', text: 'Banana'},
{id: '3', text: 'Orange'},
{id: '4', text: 'Cherry'},
],
createFilter: function(input) {
var match, regex;
regex = new RegExp('^' + REGEX + '$', 'i');
match = input.match(regex);
if (match) {
console.log(match[0]);
return !hasOwnPropertyCaseInsensitive(this.options, match[0]);
}
return false;
},
create: true
});
1.'id'가'createFilter'를 어떻게 깨지는지 보지 마십시오. 2.'select'는'name' 속성을 지정해야한다고 생각하십시오. 삼.'REGEX'는'[a-zA-ZæøåÆØØ] {2,}'로 크게 단순화 될 수 있습니다. 만약 당신의 의도가 맞다면 (최소 길이 2를 확인합니까?) – 0x2D9A3
단순화 된 정규식을 가져 주셔서 감사합니다. 그렇습니다. 최소 길이 2를 확인하는 것이 저의 의도였습니다.'''createFilter''''를 사용하는 것은'''valueField''''를''id''로 변경하면됩니다. '''- 내게 알려지지 않은 어떤 이유 때문에, 항상'''true''를 반환 할 것이고, 따라서 사용자가리스트에없는 값을 생성하도록 만되어있는 필터를 깨뜨릴 것입니다. – IanDK
아마도 나는 누락되었습니다. 하지만 사용자가 허용 된 값이 목록의 * 이미 * 인 경우 사용자가 새 값을 만들도록하는 이유는 무엇입니까? – 0x2D9A3