js点击元素光标不移动

JavaScript012

js点击元素光标不移动,第1张

当使用JavaScript点击元素,但光标不移动时,可能是因为没有正确设置光标位置。可以通过设置光标位置来解决这个问题,例如,可以使用JavaScript的selectionStart和selectionEnd属性来设置光标的位置。另外,也可以使用JavaScript的focus()方法来设置光标的位置,这样就可以让光标移动到指定的位置。此外,也可以使用CSS的cursor属性来设置光标的位置,这样就可以让光标移动到指定的位置。总之,只要正确设置光标位置,就可以解决JavaScript点击元素时光标不移动的问题。

具体思路是

1. setCaretPos(element, pos)就是将光标设置在element元素的pos位置

2. 键盘监听

a, 获取当前光标位置

b, 将当前位置后面的那个 _ 去掉(这里面要取原文本, 然后处理, 然后结果写到textarea中, 注意, 此时textarea的光标在最后位置, 所以又第三步)

c, 将光标定位到原当前位置

然后键盘输入自然会在光标的后面位置, 也就是实现了insert功能

我在firefox, ie9下测试通过, 使用了jquery去取dom元素, 如果没

onBlur事件是当光标离开当前获得聚焦对象的时候,触发onblur事件,同时执行被调用的程序

示例

<form name="blur_test">

   <p>姓名 <input type="text" name="name"value="" size="30"onblur="chkvalue(this)"><br>

    性别 <inputtype="text" name="sex" value=""size="30" onblur="chkvalue(this)"><br>

    年龄 <inputtype="text" name="age" value=""size="30" onblur="chkvalue(this)"><br>

    住址 <inputtype="text" name="addr" value=""size="30" onblur="chkvalue(this)"></p>

</form>

JS代码

<scriptlanguage="JavaScript">

 

function chkvalue(txt) {

   if(txt.value=="") alert("文本框里必须填写内容!")

}

 

</script>