2011-09-05 11 views
2
var InDate = trim($(".inDate").val()); 

if (InDate == '') { 
    $(".inDate").val(dateDisplayFormat); 
} 

//Bind date picker 
daymarker.bindElement(".inDate", 
    { 
     onSelect: function(date) { 
      $(".inDate").trigger('change');    
     }, 
     dateFormat:jsDateFormat 
    }); 

$(".inDate").change(function() { 
    //some validation functions are called here. 
}); 

내가 두 행에 indate와 outdates가 있다고 가정 해 보겠습니다. 예를 들어변경 이벤트를 어떻게 멈출 수 있습니까?

: 내가 날짜 선택 indate 변화를 사용하여 첫 번째 날짜를 변경할 때 그렇게 때문에 그것을 twice.so 호출됩니다

Indate  outDate 
2011-02-20 2011-02-24 
2011-02-25 2011-02-27 

는 검증 message.Lets 내 첫 말을 제공 할 수 없습니다 날짜가 잘못되었습니다. 두 번째 날짜가 맞습니다. 유효성 검사 메시지가 숨겨지기 때문입니다.

첫 번째 날짜가 잘못되면 두 번째 트리거를 중지 할 수있는 방법이 있습니까 ???

답변

0

"두 번 불렀다"는 것이 아니라, $(".inDate")을 여러 번 사용하고 있습니다.이 부분은 항상 일치하는 요소의 전체 모음을 의미합니다.

// loop through each matching element 
$(".inDate").each(function(index, elem){ 

    var 

    // this particular element 
    $elem = $(elem), 

    InDate = trim($elem.val()); 

    if (InDate === '') { 
    $elem.val(dateDisplayFormat); 
    } 

    //Bind date picker 
    daymarker.bindElement(elem, { 
    onSelect: function(date) { 
     $elem.trigger('change');    
    }, 
    dateFormat:jsDateFormat 
    }); 

    $elem.change(function() { 
    //some validation functions are called here. 
    }); 

}); 

내가 daymarker.bindElement는 첫 번째 인수로 실제 DOM 요소를 허용 똑똑하고, 특히 CSS의 seletor 포함 된 문자열을 필요로하지 않는다는 것을 가정

이것은 당신이 의도 아마 가까운 .

또한 daymarker.bindElement은 매번 다른 대상 DOM 요소를 사용하여 여러 번 호출 할 수 있다고 가정합니다. 그런 경우가 아니라면, 반드시 .each() 반복기 함수 내에 새로운 daymarker을 작성하십시오.

관련 문제