1

ornotおよび()演算子を使用して非常に基本的なクエリビルダーをまとめます。入力フィールドに追加してもらいますが、角かっこ演算子ボタンが入力フィールドに追加されたときにカーソルが(here)ユーザーのクエリに対応できるように配置されると、ユーザーにとって有益だと思います。

これまでのところ:

   // query builder functions
$(function() {
  var queryinput = $( "#query-builder-modal .search-box input.querybuilder" );

  $('#query-builder-modal ul.operators li.or').click(function(){
    queryinput.val( queryinput.val() + "OR" );
    queryinput.focus();
  });

  $('#query-builder-modal ul.operators li.not').click(function(){
    queryinput.val( queryinput.val() + "-" );
    queryinput.focus();
  });

  $('#query-builder-modal ul.operators li.brackets').click(function(){
    queryinput.val( queryinput.val() + "()" );
    queryinput.focus();
  });
});

このサンプルコードの3番目のクリック関数の括弧の間にカーソルを置くのを手伝ってくれる人はいますか?

前もって感謝します

4

1 に答える 1

1

あなたはこのようなことを試すことができます:

$('#query-builder-modal ul.operators li.brackets').click(function(){
    queryinput.val( queryinput.val() + "()" );
    var pos = queryinput.val().length - 1;
    myInput.focus(); /* Seems mandatory for Firefox/Opera */
    queryinput[0].selectionStart = queryinput[0].selectionEnd = pos;
});

ここにjsfiddleの例

編集:FirefoxとOperaの場合、最初focus()に入力する必要がありますが、Safariとchromeでは必要ないようです。コードとjsfiddleを更新しました。

于 2013-02-07T18:07:54.933 に答える