2013-06-13 4 views
2

사용자가 드롭 다운 'a'에서 다른 옵션을 선택하면 드롭 다운 'b'에서 드롭 다운 'a'에서 선택한 값을 'a'로 설정합니다.Html.DropDownFor 도우미에서 'onchange'에서 JQuery를 실행하려고 시도합니다.

나는 HTML 헬퍼를 사용하고 'DropDownFor'드롭 다운에 대한 '는'는 MVC 프로젝트 :

$(document).ready(function ddMonthChange() { 
var frequency = document.getElementById("FrequencyId").options[document.getElementById("FrequencyId").selectedIndex].value; 
alert("frequency is " + frequency); 

}); 
:

<%=Html.DropDownListFor(r => r.FrequencyId, frequencyItems, new { onchange ="ddMonthChange" })%> 

나는이 jQuery 코드를 호출 할 수있는 'onchange를'이벤트를 원하는

내가 드롭과 같은 뷰에 태그를했습니다 A는 그 다음과 같습니다

<script type="text/javascript" src="../../Scripts/jquery.setMonthly.js"></script> 

그래서, 분명이 잘못된 것입니다. 스크립트는 실행되지만 뷰가로드 될 때만 (경고가 팝업 됨) 드롭 다운 'a'에서 다른 항목을 선택할 때 아무 작업도 수행하지 않습니다.

다른 항목을 선택하면 스크립트가 실행되도록 어떻게 연결해야합니까?

function ddMonthChange() { 
    var frequency = document.getElementById("FrequencyId") 
     .options[document.getElementById("FrequencyId").selectedIndex].value; 
    alert("frequency is " + frequency); 
} 

이것은 $(document).ready(...) 단순히 (귀하의 경우 ddMonthChange에) 당신이 전달 기능을 실행하기 때문에 때 DOM : 사전에

덕분에,

답변

1

그냥

$(document).on("change","select[name=FrequencyId]",function(){ 
    alert("frequency is " + $(this).val()); 
}); 
+0

오른쪽 대괄호가해야 작동 (] "이 아닌"])하지만 따옴표 전에 변경! 감사합니다 Gorkhan. – user2284341

+0

아, 업데이트 됨 여기에서 IDE를 사용하지 않고 글을 썼다. 내 이름은 Gorkhan이 아닌 Gökhan이다. :) –

+0

하지만이 드롭 다운을 어떻게 설정해야합니까? (% = Html.DropDownListFor (r => r.PayMonthOne, payMonthItems) %> 자바 스크립트에서 payMonthItems의 다른 항목? $ (document) .on ("change", "select [name = FrequencyId]")을 시도했습니다. function() { // 경고 ("빈도는 + $ (this) .val()), VAR 주파수 = $ (이) .val(); 경우 (주파수 == 2) // 2 분기 = { document.getElementById를 ("PayMonthFirst") 발 (1). }}); 분명히 옳지 않습니다. – user2284341

0

당신은 너무 같은 jQuery를 준비 부분을 제거해야 적재가 완료되었습니다. 전역 범위에서 함수를 사용할 수 있기를 원하기 때문에 드롭 다운이 변경 될 때마다 호출 할 수 있도록하려면 jQuery의 준비 함수에 전달할 수 없습니다.

자바 스크립트의 범위에 대한 자세한 내용은 http://coding.smashingmagazine.com/2009/08/01/what-you-need-to-know-about-javascript-scope/을 참조하십시오.

관련 문제