gpt4 book ai didi

javascript - RadioButton 没有焦点 "receive"

转载 作者:行者123 更新时间:2023-11-28 10:06:17 25 4
gpt4 key购买 nike

我已经拼凑了一些在 ASP.NET 中使用的代码,以防止控件在回发时失去焦点,因此选项卡或单击另一个控件可以保存用户位置并返回它。

在 Page_Load 中我有以下内容:

PartNum_tb.Attributes["onfocus"] = "gotFocus(this)";
Department_tb.Attributes["onfocus"] = "gotFocus(this)";
PartWeight_tb.Attributes["onfocus"] = "gotFocus(this)";
Standard_rb.Attributes.Add("onfocus","gotFocus(this)");
Special_rb.Attributes.Add("onfocus","gotFocus(this)");

if (Page.IsPostBack)
Page.SetFocus(tabSelected.Value);

这是我的 Javascript(tabSelected 是一个隐藏字段):

<script type="text/javascript">
function gotFocus(control) {
document.getElementById('form1').tabSelected.value = control.id;

if (control.type == "text") {
if (control.createTextRange) {
//IE
var FieldRange = control.createTextRange();
FieldRange.moveStart('character', control.value.length);
FieldRange.collapse();
FieldRange.select();
}
else {
//Firefox and Opera
control.focus();
var length = control.value.length;
control.setSelectionRange(length, length);
}
}
}
</script>

问题是,当我选择或单击其中一个单选按钮时,它会将焦点返回到最后一个控件,这对用户来说既不直观又令人困惑。这样做是因为 RadioButton 永远不会获得焦点,因此光标位置不会更新。经过广泛的 Google 搜索后,似乎实际上不可能知道 RadioButton 何时获得焦点。是否有任何已知的解决方案可以解决这个问题?

最佳答案

解决方案可能是将keypress 事件添加到前一个字段,并在 radio 上使用click 事件。另外,将 control.focus(); 移出 if 语句:

Javascript

function changeFocus(next) {
gotFocus(next);
}

function gotFocus(control) {
document.getElementById('form1').tabSelected.value = control.id;
control.focus();

if (control.type == "text") {
if (control.createTextRange) {
//IE
var FieldRange = control.createTextRange();
FieldRange.moveStart('character', control.value.length);
FieldRange.collapse();
FieldRange.select();
}
else {
//Firefox and Opera
var length = control.value.length;
control.setSelectionRange(length, length);
}
}
}

关于javascript - RadioButton 没有焦点 "receive",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8318094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com