我正在开发一个html表单,它使用jscript来执行诸如加载表单设置,使用默认值加载表单,数据验证等功能。然后它使用htm来显示页面。
当表单加载时,第一个字段会填充默认数据,该数据在99%的时间内都是合适的。我希望表单的第一个字段不仅在加载时获得焦点,而且还要选择默认值(文本),以便1%的用户可以轻松地开始键入而无需退格或突出显示文本。
我查看了很多网站,包括stackoverflow,最常见的建议是添加一行 - fieldid.select();该行将紧跟焦点线 - fieldid.focus();添加选择行根本没有效果。该字段确实获得焦点,但光标在默认文本的末尾闪烁,并且未选择文本。
以下是我正在使用的代码段...
function windowLoad()
{
hideExtraFields();
loadFormSettings();
comboEventType.focus();
var params = getUseCaseParams();
if (params)
{
inputLocation.value = params.EventLocation;
comboEventType.value = "This is the default text";
comboEventSubtype.value = "this is the default subtext";
}
else
{
var unitData = getMyUnitData();
inputLocation.value = unitData.Position.LocationString;
comboEventType.value = "This is the default text";
comboEventSubtype.value = "this is the default subtext";
}
}
答案 0 :(得分:0)
确保在设置了默认值后调用select()。
function windowLoad()
{
hideExtraFields();
loadFormSettings();
var params = getUseCaseParams();
if (params)
{
inputLocation.value = params.EventLocation;
comboEventType.value = "This is the default text";
comboEventSubtype.value = "this is the default subtext";
}
else
{
var unitData = getMyUnitData();
inputLocation.value = unitData.Position.LocationString;
comboEventType.value = "This is the default text";
comboEventSubtype.value = "this is the default subtext";
}
comboEventType.focus();
inputLocation.focus()
inputLocation.select()
}
订单在这里很重要。注意这是有效的: http://jsfiddle.net/g1zmprmx/