2011-10-06 4 views
1

제출 버튼과 함께 양식에 입력 요소가 있습니다.텍스트 변경 후 제출하기 전에 javascript/jquery를 실행하십시오.

변경이 발생할 때마다 input 요소에서 change 이벤트를 실행하려고합니다. 문제는 최종 사용자가 텍스트를 변경하고 제출 버튼을 클릭하면 변경 이벤트의 코드가 실행되지 않는다는 것입니다.

사용자가 제출 버튼을 클릭하자마자 양식이 전송됩니다 (변경 사항이 실행되지 않아 흐림 또는 초점 이탈과 동일하게 나타남).

내 컨트롤을 모든 폼에 배치 할 수 있으며 단추의 클릭 이벤트를 제어하지 않습니다.

도와주세요

+3

이 유 코드를 공유 할 수 있습니다 keyup을 넘어, 난 당신이 또한 마우스로 붙여 넣기를 처리 할 조심해야 찾은합니다 (의 keyup 또는 변경 이벤트를 트리거하지 않습니다)? –

+2

'onkeyup' 이벤트를 시도해보십시오 - 실제 키 누르기를 잡아라. –

답변

0

당신이 텍스트 상자에 입력에 확장 document.ready

$("input[type='text']").change(function() { 
    $("#SubmitButton").attr('disabled', 'disabled'); 
    // check input ($(this).val()) for validity here 
    // after text is updated..etc, enable the button 
    $("#SubmitButton").removeAttr('disabled'); 
}); 
1

사용 할 수 있습니다 @Aleks G의 의견, 당신이 할 수있는 가장 좋은 일은 change 이벤트 이상의 변경 처리를 트리거하는 것입니다.

yourInput.bind('change keyup paste', function() { 
    // Your code 
}); 
+0

예, 현재 사용자가 텍스트를 변경 한 다음 변경 이벤트 발생없이 제출 버튼을 눌렀을 수 있습니다. 변경이 실행되기 전에 양식이 제출됩니다. – David

+0

제출이 시작된 것과 같습니다. 입력 값이 시각적으로 변경되어 제출이 이미 시작되었으므로 텍스트 값을 업데이트 할 수있는 기회가 없습니다. – David

+0

변경 기능이있을 때까지 제출 버튼을 비활성화 할 수 있습니다 완성 된 – Avien

관련 문제