2012-11-18 2 views
5

나는 virtual keyboard을 사용하고 있습니다. 가상 키보드를 표시할지 여부를 제어하는 ​​확인란이 있습니다. 문제는 내가 그것을 어떻게 불가능하게하는지 이해할 수 없다는 것입니다. 바인딩을 시도하지만 작동하지 않습니다 ...가상 키보드 사용/사용 안함

또한 네임 스페이스를 사용하려고 시도한 다음 모든 네임 스페이스를 바인딩 해제했지만 여전히 텍스트 상자를 클릭 한 후에도 키보드에 액세스 할 수 있습니다.

<input class="virtualKeyboardField ui-keyboard-input ui-widget-content ui-corner-all" data-val="true" data-val-required="The User name field is required." id="loginUserName" name="UserName" type="text" value="" aria-haspopup="true" role="textbox"> 
<script type="text/javascript"> 
    $(function() { 
    //show login 
    $("#showLogin").on({ 
     click: function() { 
     $("#loginFormDiv").toggle("slow"); 
     } 
    }); 
    $("#cb_showVKey").on('click', CheckIsToShowKey); 
    }); 
    function CheckIsToShowKey(event) { 
    //var isCheck = $("#cb_showVKey").is(':checked'); 
    //alert("ischecked? " + isCheck); 
    if ($("#cb_showVKey").is(':checked')) { 
     //if checked 
     BindKeyboards(); 
    } else { 
     //not checked 
     UnBindKeyboards(); 
    } 
    } 
    function bindVirtualKeyboards() { 
    $("#loginForm").delegate(".virtualKeyboardField", "click.xpto", BindKeyboards); 
    } 
    function UnBindKeyboards() { 
    $("#loginForm").undelegate(".virtualKeyboardField", "click.xpto", BindKeyboards); 
    } 
    function BindKeyboards() { 
    // alert(event.currentTarget.id); 
    //alert("xpto"); 
    if ($("#cb_showVKey").is(':checked')) { 
     $("#loginUserName").keyboard({ 
     layout: 'qwerty', 
     lockInput: true, 
     preventPaste: true 
     }); 
     $("#loginUserPassword").keyboard({ 
     layout: 'qwerty', 
     lockInput: true, 
     preventPaste: true 
     }); 
    } 
    } 
    $(document).ready(function() { 
    $("#loginForm").validate(); 
    BindKeyboards(); 
    }); 
</script> 

도움 사람이 있습니까?

답변

0

당신이

var keys; 
var key_init=function() {keys=$('#keyboard').keyboard().getkeyboard();}; 

key_init(); 
$('#switch_kbd').change(
    function() { 
    if ($(this).attr('checked')==='checked') { key_init(); return;} 
    keys.destroy(); 
    } 
); 

sample

나는 그것이 위키의 업데이트, 또한이 같은 솔루션을 사용 layout demo 지적했다 주목을 필요 않습니다. 자신의 docs에서

:

키보드는 또한 $ ('# 키보드')를 사용하여 액세스 할 수있는 키보드 데이터 객체입니다 getkeyboard()

사용 keyboard.destroy()

.
  • 이 기능은 키보드와 이벤트를 입력에서 완전히 제거합니다.
  • 이 기능은 동일한 입력을 사용할 때 키보드 레이아웃을 변경하려는 경우 필요합니다. layout demo.
+0

을 참조하십시오. 어쨌든 ... 내가 시도한 방식이 의미가 있습니까? –

+0

idk, 내가 대답하는 방법을 물었습니다. –