2012-11-18 2 views
5

J'utilise un virtual keyboard. J'ai une case à cocher qui contrôle si le clavier virtuel est affiché ou non. La chose est que je ne comprends pas comment le désactiver. J'essaie de le déconnecter mais cela ne fonctionne pas ...Activer/désactiver le clavier virtuel

J'ai également essayé d'utiliser des espaces de noms puis de dissocier tous les espaces de noms mais le clavier reste accessible après un clic sur la zone de texte.

<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> 

Toute aide les gars?

Répondre

0

qui fait ce que vous avez besoin

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

Je mis à jour, il est wiki, et a également noté qu'il a été souligné layout demo qui utilise même solution.

de leur docs:

clavier est l'objet de données du clavier que vous pouvez également accéder à l'aide de $ ('clavier #') getkeyboard()

Utilisation keyboard.destroy()

.
  • Cette fonction supprime complètement le clavier et les événements de l'entrée.
  • Cette fonction est nécessaire si vous envisagez de modifier la disposition du clavier lorsque vous utilisez la même entrée. Voir le layout demo.
+0

cela fonctionne. de toute façon ... est-ce que la façon dont j'essayais a du sens? –

+0

idk, vous avez demandé comment j'ai répondu –