2014-10-01 3 views
1

오픈 소스 타사 응용 프로그램에 문제가 있습니다. 많은 양식이 제출되기까지 잠시 시간이 걸리고 사람들은 제출 버튼을 여러 번 누르기 시작합니다. 이러한 양식 중 상당수는 이미 양식을 확인하는 데 사용됩니다. 우리는 그 어떤 것도 해치고 싶지 않습니다.양식 성공 후 양식 사용 안 함

처음에는 클릭 한 번 제출 버튼을 비활성화 할 수 있다고 생각했습니다. 문제는 양식이 유효성을 검사하지 않으면 버튼이 여전히 사용 중지 된 것입니다.

또한 현재 검증 및 다른 프로세스를 덮어 쓰기 때문에 기본 onsubmit을 사용할 수 없습니다.

실제로 양식 제출이 성공적으로 시작될 때 유효성 검사 후 제출 버튼을 비활성화 할 수있는 방법이 있습니까?

+0

당신이 폼의 onsubmit 이벤트에 대한 이벤트 핸들러에 대한 코드 (이상 정보)를 게시 할 수 있습니까? 유효성을 검사하는 함수에서 리턴 된 값이있는 경우, 현재 eventHandler를 실행하고 유효성 검사 함수가 정보를 리턴 할 경우 양식을 다시 사용 가능하게하는 랩퍼 함수를 ​​작성할 수 있습니다. –

+0

나는 순수한 의미에서 일반 상황을 다루려고 의도적으로 코드를 게시하지 않았습니다. 이것은 많은 차이가있는 타사 솔루션이기 때문에 자바 스크립트 유효성 검사와 상관없이 응용 프로그램의 여러 양식에서 작동하는 솔루션이 필요합니다. – eisaacson

+0

현재 이벤트 처리기의 "블랙 박스"뷰를 가져와야하는 경우, 현재 작성한 함수에서 래핑하거나 현재 이벤트 핸들러를 사용하지 않는 것으로 제한됩니다. –

답변

0

jQuery를 사용하는 경우 유효성 검사 기능을 호출하고 실패하면 버튼을 다시 활성화하십시오.

0

타사 앱을 제어 할 수 없으므로 한 번의 클릭으로 각 버튼을 사용 중지 한 다음 특정 기간 후에 유효성 검사 루틴이 완료 될 때까지 해당 버튼을 다시 사용하도록 설정할 수 있습니다. 유효성 검사 기능이 성공하면 양식이 제출되고 ~ 버튼이 다시 활성화됩니다.

이것은 당신이 가야한다 :

$('button').on('click',function() { 
    $(this).prop('disabled', true); 
    (function(b) { 
    setTimeout(function() { 
     b.prop('disabled', false); 
    },1000); 
    } 
)($(this)); 
}); 

바이올린 : http://jsfiddle.net/x3tv6vqo/

관련 문제