2012-04-11 3 views
0

두 개의 JS 스크립트가 있습니다. 하나는합니다 ('등록'버튼을 클릭 한 후) 형태의 수정 항목을 확인하기위한 것입니다 : 일부 항목이 잘못 할 때 양식을 수정했는지 확인하여 잘못 입력하면 div가 몇 초 동안 표시됩니다.

 Zikula.Users.NewUser.setup = function() { 
      Zikula.Users.NewUser.formId = '{{$formData->getFormId()}}'; 

      Zikula.Users.NewUser.fieldId = { 
       submit:   '{{$formData->getFormId()}}_submitnewuser', 
       checkUser:  '{{$formData->getFormId()}}_checkuserajax', 
       checkMessage: '{{$formData->getFormId()}}_checkmessage', 
       validMessage: '{{$formData->getFormId()}}_validmessage', 

       userName:  '{{$formData->getFieldId('uname')}}', 
       email:   '{{$formData->getFieldId('email')}}', 
      }; 
     } 

그리고

은, 다음 (경고 메시지)를 표시 DIV있다. 잠시 후이 div를 숨기고 싶습니다. 이 JS와 함께 :

 var timePeriodInMs = 5000; 
     setTimeout(function() 
     { 
     document.getElementById("mydiv").style.display = "none"; 
     }, 
     timePeriodInMs); 

나는 두 번째는 첫 번째는 (A 버튼을 사용자가 클릭)로드 될 때 어떻게 든 함께 실행되어야합니다 알고,하지만 난 그들과 합류하는 방법을 모르겠어요. 아무도 도와 줄 수 있니?

UPDATE :

{버튼 ID = $ formData-> getFormId() | 고양이 :

등록 버튼 코드 같은 종류가 '_ submitnewuser'유형 = '이미지'SRC = 'btn_register.png을 'set ='icons/extrasmall '}

고마워요. Martin

+0

사용하는 구문에 익숙하지 않지만 어딘가에 ** 표시가있는 div가 있다고 가정합니다. div를 표시 한 직후 왜'setTimeout' 작업을 수행 할 수 없습니까? div를 페이드 아웃하는 방법에는 여러 가지 방법이 있습니다. 재귀 함수를 사용하여'setInterval' 또는'setTimeout'을 사용할 수 있으며, div의 알파 값을 꾸준히 줄이거 나 jQuery의 [fadeOut] (http://api.jquery.com/fadeOut/) 함수를 사용할 수 있습니다. – Travesty3

답변

0

질문에 중요한 정보가 누락되었을 수 있지만 가정하지 않을 경우이 대답이 도움이 될 것입니다.

함수에서 두 번째 코드를 감싸고 적절한 이벤트를 처리하는 코드에서 호출하십시오. 다음과 같은 내용 :

+0

감사합니다. 작동하지만 정의 된 시간 (5s)은 단추를 클릭 한 후에가 아니라 페이지가로드 될 때 올바르게 계산됩니다. 나는 div의 숨김을 가진이 솔루션이 숨겨진 div가 더 많을 때 최고의 해결책이 아니라는 것을 발견했다. 어떤 단순한 페이드 아웃 기능을 유사하게 사용하거나 어떤 식 으로든 사용할 수 있습니까 *이 숨기기 기능을 느리게하십시오? 다시 한 번 감사드립니다 –

+0

버튼 클릭을 처리하는 코드가 있다고 가정합니다. * hideErrors(); * 호출을 해당 함수로 이동하십시오. 또는 * var timePeriodInMs = 5000; * (5 초)을 원하는 모든 숫자 (초 * 1000)로 변경하십시오. –

관련 문제