document.getElementById(frmObj.id).value="";
document.getElementById(frmObj.id).autofocus;
document.getElementById("errorMsg").innerHTML = "Only numeric value is allowed";
在上面的代码中,将窗体对象的值完美设置为,""
但文本框中没有光标。我希望光标在那里。focus()
仅聚焦于该输入框,但实际上未设置光标。
document.getElementById(frmObj.id).value="";
document.getElementById(frmObj.id).autofocus;
document.getElementById("errorMsg").innerHTML = "Only numeric value is allowed";
在上面的代码中,将窗体对象的值完美设置为,""
但文本框中没有光标。我希望光标在那里。focus()
仅聚焦于该输入框,但实际上未设置光标。
.focus()
确实设置了光标。这就是聚焦动作的全部含义。
Answers:
在JavaScript中,首先关注控件,然后选择控件以在texbox上显示光标...
document.getElementById(frmObj.id).focus();
document.getElementById(frmObj.id).select();
或使用jQuery
$("#textboxID").focus();
我意识到这是一个非常古老的问题,但是对于类似的问题,我有一个“愚蠢”的解决方案,可能会对某人有所帮助。
我遇到了一个文本框出现同样的问题,该文本框显示为选中状态(通过JQuery中的Focus方法),但没有将光标插入。
事实是,我打开了“调试器”窗口以查看正在发生的事情,而那个窗口正在夺走焦点。该解决方案非常简单:只需关闭调试器即可,一切都很好...花费了1个小时进行测试!
<span>
元素具有焦点,这最终成为问题(我滚动的消息很高兴通过了第一个被接受的答案)。我还发现默认情况下有些HTML元素无法聚焦(似乎是特定于浏览器的)。该<span>
元素是这些元素之一,这就是为什么Chrome浏览器(版本57)将重点放在开发人员工具窗口上的原因。
有时您会获得焦点,但文本字段中没有光标。在这种情况下,您可以这样做:
document.getElementById(frmObj.id).select();
setSelectionRange
<input type="number"/>
您没有提供足够的代码来帮助您提交表单并重新加载页面,或者页面上有一个对象(例如嵌入的PDF)占据了焦点。
这是验证表单的标准javascript方法。可以使用inubtrusive 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>
document.getElementById(fieldID).focus();
应该将闪烁的光标放在表单字段中,除非您有其他东西可以吸引页面焦点。您现在拥有.autofocus的语句不起作用