当您输入公式时,我试图在我的应用程序中重现类似于 Microsoft Excel / Google Sheets 的用户体验,并且您可以使用不同的公式和变量来自动完成下拉菜单。
为此,在验证自动完成功能后,我希望能够控制光标的位置。
例如,如果我输入=sum(变量1,变量2),则在变量2自动完成时,光标应该位于最后一个括号之前,而不是在最后。
我了解如何使用javascript设置光标的位置,问题是因为我同时修改输入的值并设置光标位置,后者不起作用。
我用更简单的上下文重现了问题: https ://jsfiddle.net/joparisot/j8ourfa1/31/
我的HTML:
<div id="app">
<autocomplete v-model="selection"></autocomplete>
</div>
<template id="autocomplete">
<div>
<h2>gernerogrnio</h2>
<input id="my-input"
class="form-control"
type="text"
:value="value"
@keydown.enter="updateValue($event.target.value)">
<p>{{ value }}</p>
</div>
</template>
Run Code Online (Sandbox Code Playgroud)
我的脚本:
Vue.component('autocomplete', {
template: '#autocomplete',
props: {
value: {
type: String,
required: true
}
},
methods: {
updateValue (value) {
var new_value = ''
if (value.length < 4) {
new_value = 'Inferior'
} else {
new_value = 'Superior'
}
this.$emit('input', new_value)
var myInput = document.getElementById('my-input');
this.setCaretPosition(myInput, …Run Code Online (Sandbox Code Playgroud) 我正在尝试为屏幕键盘制作TextBox行为,它可以更新文本框中的文本,但我不能让它集中文本框并在完成更新后将插入符移动到文本的末尾.
我尝试在两个命令中使用TextBox.Focus()和TextBox.Select()而没有运气.
谢谢你的时间
我正在尝试做一些事情,但我不确定它叫什么或我应该寻找什么.
我想在jquery中做到这一点.
基本上当你在输入框中时,如果用户输入一个字符,我希望插入符号自动跳转到下一个输入框.银行通常拥有它.
这个或者我应该寻找什么类?
谢谢你的帮助.
是否有任何好的JQuery/JS解决方案来获得文本区域中插入符号的绝对位置(以X/Y坐标或顶部/左侧坐标给出).
keyDown JQuery函数的本机Event对象给出了光标的x/y坐标,我想要一些类似工作插入符号的工作.
我的目标是添加一个浮动的HTML元素,它将相对于工作插入位置定位,所以我需要以某种方式获得它的位置.
我需要解决方案来处理TextArea元素,但任何可编辑的html元素的通用解决方案都会更好!
我想从Delphi中的TEdit控件中删除插入符号.我已经制作了组件,Enabled := False但插入符号仍然出现.我的问题是如何从禁用的TEdit控件中删除插入符号?
我偶然发现了以下问题:
我想在组件的插入符号的位置读取JTextComponent文档中的字符.当我使用JTextPane时,在插入符号位置返回的字符不正确.更详细地说,返回的字符是字符是插入符号的位置减去行的数量!(插入位置 - 当前行的编号).另一方面,当我使用JTextArea时,结果是正确的......为了证明这一点,我已经实现了一个可以使用的示例程序.
所以最大的问题是,在JTextPane的情况下,如何获得插入符号的位置?
为什么JTextPane不会返回与JTextArea相同的插入位置,还有更多为什么JTextPane返回的字符不是我们在屏幕上看到的字符?描述的行为是错误的吗?
您可以在下面找到示例程序的代码以及非常有趣和意外结果的屏幕截图
使用JTextPane.CARET职位17中的字母是e.不...
alt text http://img405.imageshack.us/img405/2746/jtextpane.jpg
使用JTextArea.在这里,我的插入符号与之前的位置相同,但现在我得到插入位置20,返回字母是\ r \n(与预期的一个).
alt text http://img809.imageshack.us/img809/5323/jtextarea.jpg
以下是您可以使用的代码来查看这种奇怪的行为:
import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;
import java.awt.event.*;
public class Example extends JFrame {
// use this instead of JTextPane to see the difference
// JTextComponent testingArea = new JTextArea(5,10);
JTextComponent testingArea = new JTextPane();
JButton button = new JButton("test");
JTextComponent resultArea = new JTextField(20);
public Example() {
initialise();
testingArea.setText("line1\r\nline2\r\nline3\r\nline4");
}
private void initialise() {
testingArea.setPreferredSize(new Dimension(100,100));
setLayout(new FlowLayout());
getContentPane().add(testingArea); …Run Code Online (Sandbox Code Playgroud) 我有一个JTextArea并且我正在检测是否有任何文本是选择,如果没有,那么两个菜单项是灰色的.我遇到的问题是,当我编译并打开应用程序时,我必须首先单击JTextArea,然后菜单项显示为灰色,如果我不这样做,即使没有选择文本也不是.我正在使用以下插入符号监听器.
textArea.addCaretListener(new CaretListener() {
@Override
public void caretUpdate(CaretEvent arg0) {
int dot = arg0.getDot();
int mark = arg0.getMark();
if (dot == mark) {
copy2.setEnabled(false);
cut1.setEnabled(false);
}
else{
cut1.setEnabled(true);
copy2.setEnabled(true);
}
}
});
Run Code Online (Sandbox Code Playgroud) 我正在使用bootstrap开发我的个人投资组合,导航下拉列表有一个插入符号,您可以在http://portfolio.tomvervoort.net上看到.
投资组合旁边的插入符号是可以的,但当您点击投资组合时,下拉列表顶部也有一个白色插入符号.有谁知道如何删除这个?
我正在寻找一种方法来获取插入符号中的插入符号xy坐标,类似于如何使用window.event获取鼠标坐标,因为我需要打开一个弹出窗口,确切地说是用户使用插入符号的位置在满足的div中.我怎样才能做到这一点?非常感谢!
我目前正在尝试构建行为类似于命令外壳的应用程序。我想在javaFX文本字段中的用户输入文本之前显示我给它的路径(或至少一个'>'字符)。像这样:
我有它,以便在用户提交文本时清除文本字段。提交后,它将字段的文本设置为我的路径,以达到类似的效果,但是用户仍然可以在输入文本时删除该路径。
如何使路径文本显示在字段中,但用户无法删除它?
我已经尝试过了,但是提交后它只会更新插入符号的位置:
textField.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
textField.positionCaret(textField.getLength());
}
});
Run Code Online (Sandbox Code Playgroud)