option
요소가 해당 개체의 uniquecode
을 값으로 사용하여 만들어 졌다고 가정하면 개체에 다시 액세스해야하는 이유는 무엇입니까? 선택된 option
...의 value
속성을 검색하면됩니다.
당신이 당신의 예를 과도하게 단순화 한 단지 때문이다 가정하고, 배열 내의 객체가 option
요소 자체에서 개최되지 않은 다른 유용한 데이터를 보유 할, 당신은에 의해 객체의 배열을 필터링 할 $.grep
을 사용할 수 있습니다 이 같은 uniquecode
를 선택 : 난 개체에 foo
속성을 추가
var json = '[{"uniquecode":"b32dez2","name":"John Doe","foo":"bar"},{"uniquecode":"a2df32","name":"Adam Smith","foo":"buzz"}]';
var result = JSON.parse(json);
var $sel = $('#names').change(function() {
var value = this.value;
var obj = $.grep(result, function(e) {
return e.uniquecode == value;
});
$("#code").html(obj[0].uniquecode + '/' + obj[0].foo)
});;
result.forEach(function(obj) {
$('<option value="' + obj.uniquecode + '">' + obj.name + '</option>').appendTo($sel)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="names"></select>
<div id="code"></div>
참고 도스의 외부 개체의 속성에 액세스하는 방법을 보여 e는 option
요소에 직접 배치됩니다.
또한 option
요소를 생성하는 코드를 단순화했습니다. 프로젝트에서 jQuery를 한 번 사용하면 모든 곳에서 사용할 수 있습니다.
정말 내 질문을 지나치게 단순화 시켰습니다. 배열 내의 객체는 option 요소 자체에 포함되지 않은 다른 유용한 데이터를 보유합니다. 당신의 본보기는 내가 찾고있는 것을 정확하게합니다. '$ .grep'에 대해 몰랐습니다. 고마워요! – binoculars
새로운 문제가 발생했습니다. jQuery 유효성 검사 (https://github.com/jzaefferer/jquery-validation)를 사용하여 양식의 유효성을 검사합니다. 이 플러그인으로 특정 규칙을 정의 할 수 있습니다 :'rules : { '입력 필드 이름 : {required : true, range : [60, 120]}'. 이것은 60에서 120 사이의 자릿수만을 허용합니다. range_upperlimit과 range_lowerlimit이 json 객체의 일부이기도 한 경우 선택한 옵션에 따라이 범위를 어떻게 동적으로 변경할 수 있습니까? – binoculars
나는 유효성 검사기가 요소에 추가하는 속성을 존중하여 규칙을 설정한다고 믿습니다. 자세한 내용은 설명서를 확인하거나 자유롭게 새로운 질문을 시작하십시오. –