如何设置光标在JavaScript中的input框?

document.getElementById(frmObj.id).value=""; document.getElementById(frmObj.id).autofocus; document.getElementById("errorMsg").innerHTML = "Only numeric value is allowed"; 

在上面的代码中,表单对象的值完全设置为""但文本框中没有光标。 我想要一个游标在那里。 focus()只会关注该input框,但不会真正设置光标。

JavaScript中,首先关注控件,然后select控件在texbox上显示光标…

 document.getElementById(frmObj.id).focus(); document.getElementById(frmObj.id).select(); 

或通过使用jQuery

 $("#textboxID").focus(); 

我意识到这是一个相当古老的问题,但是对于可能帮助某人的类似问题,我有一个“愚蠢”的解决scheme。

我遇到了与显示为选中的文本框(通过JQuery中的Focus方法)相同的问题,但没有将光标放入。

事实是,我打开了Debugger窗口,看看发生了什么,窗口正在窃取焦点。 解决scheme非常简单:只需closuresdebugging器,一切都很好…在testing中花费了1个小时!

有时你在文本字段中获得焦点,但没有光标。 在这种情况下,你会这样做:

 document.getElementById(frmObj.id).select(); 

您没有提供足够的代码来帮助您提交表单并重新加载页面,或者您在页面上有一个对象,就像embedded的PDF来窃取焦点。

这是validation表单的规范的纯javascript方法它可以改进与onjtrusive JS将删除内联脚本,但这是起点DEMO

 function validate(formObj) { document.getElementById("errorMsg").innerHTML = ""; var quantity = formObj.quantity; if (isNaN(quantity)) { quantity.value=""; quantity.focus(); document.getElementById("errorMsg").innerHTML = "Only numeric value is allowed"; return false; } return true; // allow submit } 

这是HTML

 <form onsubmit="return validate(this)"> <input type="text" name="quantity" value="" /> <input type="submit" /> </form> <span id="errorMsg"></span> 

如果你使用.onmousedown作为你的用户交互,可以咬你的东西之一是; 当你这样做,然后立即尝试select一个字段,它不会发生,因为鼠标被压在别的东西上 。 因此,改为.onmouseup和viola,现在focus()工作,因为当试图改变焦点时,鼠标处于未点击状态。