6

仮想キーボードを使用しています。仮想キーボードを表示するかどうかを制御するチェックボックスがあります。問題は、それを無効にする方法がわからないということです。バインドを解除しようとしますが、うまくいきません...

また、名前空間を使用してからすべての名前空間のバインドを解除しようとしましたが、テキスト ボックスをクリックした後もキーボードにアクセスできます。

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

助けてくれる人はいますか?

4

1 に答える 1

1

それはあなたが必要とすることをします

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();
  }
);

サンプル

wiki を更新し、同じソリューションを使用するレイアウト デモを参照していることにも注意しました。

彼らのドキュメントから:

キーボードは、$('#keyboard').getkeyboard() を使用してアクセスできるキーボード データ オブジェクトです。

keyboard.destroy() を使用する

  • この関数は、入力からキーボードとイベントを完全に削除します。
  • この機能は、同じ入力を使用するときにキーボード レイアウトを変更する場合に必要です。レイアウトのデモをご覧ください。
于 2012-11-18T04:33:22.590 に答える