2009-12-31 4 views
4

템플릿을 사용하여 한 페이지 포트폴리오 사이트를 구축하고 있습니다. 연락 양식이 매우 이상하게 작동합니다. 연락처 필드에 공백을 입력 할 수 없습니다.스페이스 바가 양식 필드에서 작동하지 않습니다.

나는 다음의 jQuery 플러그인을 사용하고 있습니다 :

  • Gallerific
  • PikaChoose
  • Fancybox을

당신이 메시지 필드에 집중할 때, 당신이 사용하는 것을 허용하지 않습니다 어떤 공백. 왜 스페이스 바가 작동하지 않는지에 대한 아이디어가 있습니까?

답변

15

jquery.gallerific.js는 스페이스 바를 캡처하고 작동을 멈추는 페이지 전체 keydown 처리기를 구현합니다.

934 if (this.enableKeyboardNavigation) { 
935 $(document).keydown(function(e) { 
936 var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0; 
937 switch(key) { 
938 case 32: // space 
939  gallery.next(); 
940  e.preventDefault(); 
941  break; 

다시 문서의 갤러리 부분에 여전히 양식을 집중하면서 스크롤하면

, 당신은 스페이스 바를 누르면 다음 이미지로 진행되는 것을 알 수 있습니다.

+0

+1 멋진, 간과했다. –

0

자바 스크립트를 사용 중지하면 작동합니다. 설정중인 키 누르기 핸들러를 찾을 수 없으므로 사용중인 두 개의 JavaScript 구성 요소 사이에 충돌이있을 수 있습니다. 아무도 더 좋은 아이디어가 나오지 않으면 모든 .js 참조가 작동 할 때까지 하나씩 참조를 해제하십시오. 그렇다면 당신은 누가 그것을 일으키는 지 최소한 알고 있습니다.

3

의 사례를 찾아서 해당 사례를 주석 처리하십시오. 그것은 나를 위해 일했다.

1

페이지의 설정에서 enableKeyboardNavigation = false를 설정하지 않은 이유는 어쨌든 키보드 탐색을 몇 명만 수행했는지입니다.

또 다른 옵션입니다.

1

위의 게시 된 Sparr 코드에서 this.enableKeyboardNavigationthis.disableKeyboardNavigation으로 변경하여이 정확한 문제를 해결했습니다.

2

작동 시키려면 enableKeyboardNavigation 기능을 비활성화해야합니다. 양식 필드를 선택하지 않고 SPACE 키를 누르면 웹 페이지가 아래로 스크롤됩니다. 나는 이것이 모든 웹 사이트가 아래로 스크롤하는 것을 고려하면 정상적인 것 같아요.

0

중력 양식이있는 WordPress 페이지에 갤러리 갤러리가 설치되어 있으며 중력 양식의 스페이스 바가 작동하지 않아 양식을 채울 때마다 공백을 허용하지 않습니다.

@tim 쿠퍼 제안 this.enableKeyboard 네비게이션을 this.DisableKeyboardNavigation으로 변경하지만 키보드의 화살표 키로 많은 이미지를 탐색하는 데 익숙하다면 갤러리의 모든 탐색을 사용할 수 없게됩니다.

그래서 저는 완벽하게 다른 것을했습니다.

jquery.gallerific.js 코드의 if (this.enableKeyboardNavigation) 섹션에서이 작업을 수행했습니다. 이 부분 변경

.... 이것에

case 32: // space 
gallery.next(); 
e.preventDefault(); 
break; 

....

case 99999: // space 
gallery.next(); 
e.preventDefault(); 
break; 

이것은 gallerific 갤러리에 스페이스 바를 불가능하지만 gallerfic 갤러리의 화살표 기능을 유지하고 중력의 형태로 양식 필드의 공백 문제를 해결합니다 (당신은 또한 아마 그냥 그것을 언급 할 수) .

이 정보가 도움이되기를 바랍니다.

0

이것은 나를 위해 작동 : 32 번 (공간 버튼)을 눌렀을 때 어떤 문제 나 제안 [email protected]

이것은 나를 위해 작동
// Setup Keyboard Navigation 

if (this.enableKeyboardNavigation) { 
    $(document).keydown(function(e) { 

     var target = e.target || e.srcElement; // hack 
     //disable navigation on an input editable element 
     if (target && target.type) return true;   

     var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0; 
     switch(key) { 
      case 32: // space 
        gallery.next(); 
        e.preventDefault(); 
        break; 
      case 33: // Page Up 
       gallery.previousPage(); 
       e.preventDefault(); 
       break; 
      case 34: // Page Down 
       gallery.nextPage(); 
       e.preventDefault(); 
       break; 
      case 35: // End 
       gallery.gotoIndex(gallery.data.length-1); 
       e.preventDefault(); 
       break; 
      case 36: // Home 
       gallery.gotoIndex(0); 
       e.preventDefault(); 
       break; 
      case 37: // left arrow 
       gallery.previous(); 
       e.preventDefault(); 
       break; 
      case 39: // right arrow 
       gallery.next(); 
       e.preventDefault(); 
       break; 
     } 
    }); 
} 
1

에 저에게 연락하는 경우, 단지 공간을 추가합니다.

$("#input").keyup(function(event){ 
    if(event.keyCode == 32){ 
     $("input").val($("input").val()+' '); 
    } 
); 
관련 문제