[jquery] jquery를 사용하여 트리거 변경 이벤트 <select>

어쨌든 페이지로드시 선택 상자에서 변경 이벤트를 트리거하고 특정 옵션을 선택할 수 있습니까?

또한 함수를 이벤트에 바인딩 한 후 트리거를 추가하여 실행 된 함수입니다.

나는 이런 식으로 출력하려고 했습니다.

<select class="check">
<option value="one">one</option>
<option value="two">two</option>
</select>

$(function(){
    $('.check').trigger('change'); //This event will fire the change event. 
    $('.check').change(function(){
      var data= $(this).val();
      alert(data);            
    });
});

http://jsfiddle.net/v7QWd/1/



답변

사용 val()받는 변화 (텍스트가 아닌) 및 trigger()수동으로 이벤트를 발사.

변경 이벤트 핸들러는 트리거 전에 선언해야합니다.

여기 샘플이 있습니다

$('.check').change(function(){
  var data= $(this).val();
  alert(data);
});

$('.check')
    .val('two')
    .trigger('change');


답변

옵션을 선택하려면 select .val('value-of-the-option')요소를 사용 하십시오. 변경 요소를 트리거하려면 .change()또는을 사용하십시오 .trigger('change').

코드의 문제는 점 대신 쉼표이며 $('.check'),trigger('change');이벤트 핸들러를 바인딩하기 전에 호출한다는 사실입니다.


답변

$('#edit_user_details').find('select').trigger('change');

로 html 태그 선택 드롭 다운 항목을 변경합니다 id="edit_user_details".


답변

jQuery 트리거 핸들러로 차단 된 사람들을위한 또 다른 작동 솔루션은 기본 이벤트에서 발생하는 사격 발사는 다음과 같습니다 (100 % 작동).

var sortBySelect = document.querySelector("select.your-class");
sortBySelect.value = "new value";
sortBySelect.dispatchEvent(new Event("change"));


답변

옵션 태그 값으로 링크 제공

<select size="1" name="links" onchange="window.location.href=this.value;">
   <option value="http://www.google.com">Google</option>
   <option value="http://www.yahoo.com">Yahoo</option>
</select>


답변

점검을 원한다면이 방법을 사용하십시오

 <select size="1" name="links" onchange="functionToTriggerClick(this.value)">
    <option value="">Select a Search Engine</option>
    <option value="http://www.google.com">Google</option>
    <option value="http://www.yahoo.com">Yahoo</option>
</select>

<script>

   function functionToTriggerClick(link) {

     if(link != ''){
        window.location.href=link;
        }
    }

</script>


답변

Mohamed23gharbi의 답변을 바탕으로 :

function change(selector, value) {
    var sortBySelect = document.querySelector(selector);
    sortBySelect.value = value;
    sortBySelect.dispatchEvent(new Event("change"));
}

function click(selector) {
    var sortBySelect = document.querySelector(selector);
    sortBySelect.dispatchEvent(new Event("click"));
}

function test() {
    change("select#MySelect", 19);
    click("button#MyButton");
    click("a#MyLink");
}

내 경우에는 요소가 vue에 의해 생성 된 경우 이것이 유일한 방법입니다.