2013-03-01 2 views
1

JQuery와 함께 사용할 수있는 포인터를 찾고 있습니다.여러 입력을 확인하고 값을 선택하는 JQuery

나는 세 가지 폼 요소가 있습니다

선택 - 아이디 : 비밀 결사를
입력 [텍스트] - ID : 날짜
선택 - ID : 지속 시간

은 내가해야 할 것은에 함수의 원인이다 이들 중 하나에 변경 또는 흐림 효과가있을 경우 실행하고, 스크립트가 각각 값이 있는지 확인하고 세 값 모두를 스크립트에 전달하십시오.

그래서 나는 세 가지 변수를 채울 필요가 :

var LodgeChoice = $('#lodge').val(); 
       var DateParse = $('#dates').datepicker('getDate'); 
       var DateChosen = DateParse.getFullYear() + '-' + (DateParse.getMonth() + 1) + '-' + DateParse.getDate(); 
       var Duration = $('#durationNights').val(); 

을하지만 누군가가 양식 변수를 채울 차례를 확신 할 수 없다. 당신이 어떤 이유로 변경 된 요소를 알고 싶다면

+0

http://api.jquery.com/on – Blazemonger

답변

2
$("#lodge, #dates, #durationNights").on("blur change", function() { 
    //get/process values here 
}); 

, 당신은 이벤트 핸들러 함수 내부에서 $(this)를 참조 할 수 있습니다

편집 : 귀하의 코멘트에 대한 응답으로

: 만약 당신은 또한 진행하기 전에 세 가지 모두 가치가 있는지 확인해야합니다. 큰 if 문을 사용할 필요는 없습니다. 대신, 다음과 같은 작업을 수행 할 수

var fields = $("#lodge, #dates, #durationNights"); 
fields.on("blur change", function() { 
    var valuesSet = true; 
    fields.each(function() { 
     if (!$(this).val()) { //inside a jQuery "each", "this" refers to the current item in the loop 
      valuesSet = false; 
      return false; //break out of the "each" loop 
     } 
    }); 
    if (valuesSet) { 
     //process values 
    } 
}); 
+0

사용자가 익명 콜백을 실행하는 필드 중 하나를 선택 해제 그래서 때마다이는 흐림 이벤트 바인딩을 설정합니다. 콜백 내부 사용 $ (this) .val(); 요소 중 어느 것이 클라이언트에 의해 선택 해제되었는지에 대한 가치를 얻으 려합니다. – iAmClownShoe

+0

그는 그가 원했던 것이 아닌가요? "이것들 중 하나라도 변경이나 흐려지면 함수를 실행 시키십시오." –

+0

예. 그래서 내가 당신에게 upvote를주었습니다. 나는 많은 사람들이 $ (this)의 범위에 어려움을 겪고 있기 때문에 조금 더 명확하게하고 싶었다. 시나리오에 대해 생각해 보면 동일한 블러 이벤트와 핸들러를 모든 요소에 바인딩하면 핸들러 내부에서 값을 가져야하는 요소를 식별해야하는 핸들러 내에서 가장 효율적인 방법은 설정시 다음을 사용하는 것입니다 변수. – iAmClownShoe

관련 문제