如何设置光标在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()
工作,因为当试图改变焦点时,鼠标处于未点击状态。