1

or使用,not和运算符组合一个非常基本的查询构建器()。我让它们附加到输入字段,但我认为如果将括号运算符按钮附加到输入字段时,光标将(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();
  });
});

谁能帮我将光标放在此示例代码的第三次单击功能的括号之间?

提前致谢

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