2009-02-01 2 views
1

이것을 읽어 주셔서 감사합니다.jQuery를 사용하여 어떻게 select의 선택된 값을 배열에 저장할 수 있습니까?

select .val()에서 .split 함수를 사용하는 것처럼 간단 할 것이라고 생각했지만 js 오류가 발생합니다. 이것은 내가 사용하고있는 코드입니다. 선택한 항목을 반복 할 때 .each()를 사용합니다 ... 그러나 내가 무엇을 잘못하고 있는지 이해하고 싶습니다. ...

옵트를 리터럴로 설정하면 분할이 작동합니다 (주석 처리 된 코드)

감사

<html><head> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script> 
<script type="text/JavaScript"> 
$(function(){ 
    $("#multOpts").bind("click", function() { 
    // var opts = "OPT1,OPT2,OPT3" ; 
     var opts = $("#select1").val() ; 
     $("#text1").val(opts); 
    }); 
    $("#oneOpt").bind("click", function() { 
     // var opts = "OPT1,OPT2,OPT3" ; 
     var opts = $("#select1").val() ; 
     var optsArray = opts.split(",") ; 
     $("#text2").val("1st opt: " + optsArray[0]); 
    }); 
}); // End eventlistener 
</script> 
</head><body> 
<select id="select1" multiple size="5"> 
<option value="OPT1">Option 1</option> 
<option value="OPT2">Option 2</option> 
<option value="OPT3">Option 3</option> 
<option value="OPT4">Option 4</option> 
<option value="OPT5">Option 5</option> 
</select> 
<div> 
<input id="multOpts" type="button" value="Show Options"/> 
<input id="text1" type="text"/> 
</div> 
<input id="oneOpt" type="button" value="One Option"/> 
<input id="text2" type="text"/> 
</body></html> 

답변

6

이미 하나 이상의 옵션을 선택 돌아갑니다 배열이있는 발() 함수를 사용하면 분할을 수행 할 필요가 없습니다.

$("#oneOpt").bind("click", function() { 
      var opts = $("#select1").val(); 
      $("#text2").val("1st opt: " + opts[0]); 
    }); 
+0

감사합니다. –

1

jQuery 1.2 이후 .val() 값 배열은 다중 선택시 반환됩니다.

var opts = $("#select1").val() || []; 
$("#text2").val("values is: " +opts.join(", ")); 
관련 문제