Я собрал некоторый код для использования в 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 получает фокус .Известно ли какое-либо решение, которое даже могло бы обойти эту проблему?