나는 onsubmit
속성이있는 양식이 있습니다. 새로운 submit 이벤트를 바인드 할 필요가 있습니다. 기존의 submit 기능보다 먼저 실행해야합니다.기존의 onsubmit/submit 전에 submit() 함수를 바인드 할 수 있습니까?
다음 코드는 문제를 보여줍니다.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Test</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
jQuery(function($) {
// a plugin
$('form').submit(function() {
alert("Second");
});
// an other plugin
$('form').submit(function() {
alert("Third");
});
// this event must always be executed as first event
$('form').submit(function() {
alert("Always First");
});
});
</script>
</head>
<body>
<form onsubmit="javascript:alert('Fourth');">
<p>
<input type="submit">
</p>
</form>
</body>
</html>
스크립트를 실행하면 먼저 "Second", "First"가 표시됩니다.
새 제출 이벤트를 바인드하고 기존 이벤트 이전에 함수를 호출해야하는지 여부를 지정할 수 있습니까?
제약 :
- 기존 이벤트를 보존해야합니다.
onsubmit
속성의 내용이 레일에 의해 쓰여진 매우 복잡한 로직을 포함하고 있기 때문에 - 나는 기존 이벤트를 제거 할 수 없습니다
- (ADDED) : 이벤트는 항상 기존의 onsubmit 이벤트 전에 실행되어야하며 이미 바인더 제본 이벤트는 (아마도 바인더 제본 다른 플러그인에 의해)
어떤 생각?
이 솔루션은 훌륭하게 작동합니다. 다른 플러그인을 이미 동일한 양식에 바인딩했을 수도 있습니다. onsubmit/binded 이벤트 전에 이벤트를 바인드 할 수 있습니까? 바인드 해제/바인드 (복제 기능의 구현 읽기)를 사용하려고했지만 합리적인 해결책을 얻을 수 없었습니다. –
많은 플러그인이 live()를 사용하여 제출 이벤트를 캡처하므로 die() 함수를 사용해 볼 수 있습니다! http://api.jquery.com/live/ – xijo