По какой-то причине ни одно из моих событий setfocus () не работало на стороне сервера моего веб-приложения, поэтому я создал функцию javascript setfocus, которая настроена на срабатывание события onload тега body.
<body onload="SetFocus()">
Пользователь щелкает переключатель, чтобы включить раскрывающийся список.они выбирают из выпадающего списка, который включает текстовое поле.Когда они сканируют штрих-код в текстовое поле, он автоматически выходит из поля, поэтому запускается событие onchange для вызова некоторого кода на стороне сервера, который, если успешная вставка SQL завершена, вставит новую строку в сетку, и это должноустановить фокус автоматически обратно в текстовое поле с помощью JavaScript.Как только у этого объекта сетки больше заголовка и строки данных, я отключаю раскрывающийся список и список переключателей, поэтому, если вы посмотрите на JavaScript ниже, я больше не могу использовать их в качестве критерия в своем операторе if.
Javascript:
var MatAllRB = document.getElementById("HF_RB_MatAll").value;
var MatAllCL = document.getElementById("DD_SelectCL_All").value;
var MatAll = document.getElementById("Txt_MatBC_All");
var MatAllPrompt = document.getElementById("HF_AllPrompt").value;
var count = $("#GV_Scan_All tr").children().length;
Это прекрасно работает:
else if (ActiveTab == "cont-3" && MatAllRB != "" && MatAllCL != "")
{ alert("went into setfocus");
document.getElementById("Txt_MatBC_All").focus();
alert("made it through setfocus");
}
Это работает, только если вы действительно щелкаете по полю, вкладка не работает.Это просто ничего не делает
else if (ActiveTab == "cont-3" && count == 9)
{ alert("went into setfocus");
document.getElementById("Txt_MatBC_All").focus();
alert("made it through setfocus");
}
Это делает то же самое, что и выше
else if (ActiveTab == "cont-3" && (MatAllPrompt == "RP" || MatAllPrompt == "P03"))
{ alert("went into setfocus");
document.getElementById("Txt_MatBC_All").focus();
alert("made it through setfocus");
}
Странная вещь в том, что все эти предупреждения, которые у меня есть здесь, отображаются правильно, это простоникогда не фокусируетсяЯ все еще новичок в этом деле, так что, может быть, я что-то упустил, но я не могу понять, почему focus () будет работать для щелчка, а не вкладки.Любая помощь будет оценена.
Вот HTML
<asp:RadioButtonList runat="server" ID="RB_Mat_All" AutoPostBack="true" RepeatColumns="4" OnSelectedIndexChanged="RB_Mat_All_OnSelectedIndexChange">
<asp:ListItem Text="NC" value="NC"></asp:ListItem>
<asp:ListItem Text="DA" value="DA"></asp:ListItem>
<asp:ListItem Text="GW" value="GW"></asp:ListItem>
<asp:ListItem Text="PC" value="PC"></asp:ListItem>
</asp:RadioButtonList>
<asp:HiddenField runat="server" ID="HF_RB_MatAll"></asp:HiddenField >
<br />
<asp:DropDownList runat="server" ID="DD_SelectCL_All" AutoPostBack="true" OnSelectedIndexChanged="DD_SelectCL_All_OnSelectedIndexChange">
<asp:ListItem Value="" Text="Select..."></asp:ListItem>
<asp:ListItem value="53" text="05"></asp:ListItem>
<asp:ListItem value="54" text="06"></asp:ListItem>
<asp:ListItem value="55" text="07"></asp:ListItem>
<asp:ListItem value="57" text="08"></asp:ListItem>
<asp:ListItem value="58" text="09"></asp:ListItem>
</asp:DropDownList>
<asp:label runat="server" ID="Lbl_All_Prompt" CssClass="Form" Text=""></asp:label>
<asp:HiddenField runat="server" ID="HF_AllPrompt"></asp:HiddenField >
<asp:TextBox runat="server" ID="Txt_MatBC_All" Cssclass="Form" Text="" AutoPostBack="true" OnTextChanged="Txt_MatBC_All_TextChanged"></asp:TextBox>
<asp:GridView runat="server" ID="GV_Scan_All" CssClass="Form_Feedback"></asp:GridView>
Когда я просматриваю источник, текстовое поле выглядит так:
<input name="Txt_MatBC_All" type="text" onchange="javascript:setTimeout('__doPostBack(\'Txt_MatBC_All\',\'\')', 0)" onkeypress="if (WebForm_TextBoxKeyHandler(event) == false) return false;" id="Txt_MatBC_All" class="Form" />