2017-12-26 12 views
2

예를 들어, 사용자가 그것을 변경했는지 상관없이 JavaScript 또는 jQuery를 통해 "c"를 검색하는 방법은 무엇입니까?HTML 선택 요소의 미리 선택된 값 얻기

<select id="select-menu"> 
    <option value="a">A</option> 
    <option value="b">B</option> 
    <option value="c" selected>C</option> 
    <option value="d">D</option> 
</select> 

그러나 다음과 같이 시도했지만 현재 선택된 메뉴의 값을 반환합니다. 나는 페이지로드시 실행되고 값을 저장하는 비슷한 접근법을 취할 수 있다고 생각하지만 그렇게하기위한 "적절한"방법이있을 것으로 기대한다.

$('#select-menu > option').each(function(i){ 
    if(this.selected) { 
     console.log(this.value) 
     $("#submit").val(this.value); 
     return false; 
    } 
}) 
+1

그래서 당신은 상관없이 어떤 사용자가 선택의 "C"를 얻으려면? 왜 당신이 그것을 위해 무엇을 사용하고 있는지에 단지 하드 코딩하지 않아도 될까요? –

+0

@DrydenLong 이벤트가 발생하면 페이지를 다시로드하지 않고 원래 상태로 돌아가고 싶습니다. 필요한 경우 하드 코딩 할 수 있지만 그렇게하면 건망증이 생기기 쉽습니다. – user1032531

+0

JS가 구문 분석 된 직후의 값을 읽습니다. 사용자가 수정하기 전에. –

답변

1

사용의 jQuery .attr() 초기 값을 얻을 수 있습니다 :

function get_initial(){ 
 

 
    $('#select-menu > option').each(function(i){ 
 
    
 
     if($(this).attr('selected')) { 
 
      console.log('initial: ' + this.value) 
 
     } 
 

 
     if(this.selected) { 
 
      console.log('current: ' + this.value) 
 
     } 
 
    
 
    }) 
 

 
} 
 

 
$('.initial').on('click', get_initial);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="select-menu"> 
 
    <option value="a">A</option> 
 
    <option value="b">B</option> 
 
    <option value="c" selected>C</option> 
 
    <option value="d">D</option> 
 
</select> 
 

 
<button class="initial">check initial</button>

+0

나는 그것이 작동한다고 생각한다.난 그냥 자바 스크립트를 사용하고 있었고 지금은 jQuery가 다르게 동작하는 것을 볼 수 있습니다. 감사 – user1032531

1

당신은 HTML5 데이터 -에 값을 절약 할 수 * 속성 :

<select id="select-menu" data-default="c"> 

그리고

$("#select-menu").attr("data-default"); 
2

더 좋은 방법은 없습니다로 그것을 얻을. select는 사용자가 수정할 수있는 것을 의미합니다. 원래 값을 유지하려면

당신은 부하에 저장 수 :

$(document).ready(function() { 
    var initialValue = $("#select-menu").val(); 
}); 

또한 숨겨진 입력에 쓸 수 :

<input type="hidden" name="initial-select-menu" value="c"> 

이 방법은 그 이점이있다 값은 나머지 양식과 함께 제출됩니다. 어떤 경우에는 바람직 할 수 있습니다.

또는 당신은 data 속성에서 그 초기 값을 채울 수 :

<select id="select-menu" data-initial="c"> 
    <option value="a">A</option> 
    <option value="b">B</option> 
    <option value="c" selected>C</option> 
    <option value="d">D</option> 
</select> 
+1

감사합니다. Sebastien, 찾고 멈출 것입니다. 나는 아마도 그것을 사용과 관련된'data'에 저장할 것입니다. – user1032531

+0

위대한 마음 ... ...) –

+0

아마도'data' 속성 아이디어를 좋아할 것입니다. –

0

다음 코드를 JavaScript를 사용하여 선택 필드에서 값을 가져 오는 것과 관련된 다양한 예제를 보여줍니다.

작업 발췌문

const selectMenu = document.getElementById("select-menu"); 
 

 
var selectedIndex = selectMenu.options[selectMenu.selectedIndex].value; 
 

 
/*Option 1*/ 
 
selectMenu.onchange = function() { 
 
    selectedIndex = selectMenu.options[selectMenu.selectedIndex].value; 
 
} 
 

 
/*Option 2*/ 
 
/*selectMenu.addEventListener("change", function(){ 
 
    selectedIndex = selectMenu.options[selectMenu.selectedIndex].value; 
 
})*/ 
 

 
/*Option 3*/ 
 
/*function updateSelectedIndex() { 
 
    selectedIndex = selectMenu.options[selectMenu.selectedIndex].value; 
 
}*/ 
 

 
document.writeln(selectedIndex);
<!-- Option 3 --> 
 
<!-- <select id="select-menu" onchange="updateSelectedIndex"> --> 
 
<select id="select-menu"> 
 
    <option value="a">A</option> 
 
    <option value="b">B</option> 
 
    <option value="c" selected>C</option> 
 
    <option value="d">D</option> 
 
</select>