Я хочу включить текстовое поле и сделать его видимым (настройки по умолчанию для обоих ложны) при нажатии кнопки. Я могу выполнять обратную передачу, но это неэффективно, поэтому я хочу, чтобы моя кнопка активировалась onClientClick только для того, чтобы активировать и сделать ее видимой.
Я пробовал это:
JS:
function EnableTxt() {
document.getElementById( '<%=txtSearch.ClientID%>' ).disabled = 'false';
}
HTML:
<asp:ImageButton ID = "btnSearch2" runat = "server" ImageUrl = "~/Images/search.png" Height = "27px" Width = "30px" ImageAlign = "AbsBottom" OnClientClick = "EnableTxt()"/>
<asp:TextBox ID = "txtSearch" runat = "server" CssClass = "btnSearchStyle" Height = "27px" Width = "134px" onkeypress = "return EnterEvent(event)" BackColor = "#BDC3C7" BorderStyle = "None" Visible = "true" Enabled = "false"></asp:TextBox>
Функция JS, которую я нашел, ничего не делает...
изменить в js, просто удалите отключенный атрибут:
document.getElementById('<%=txtSearch.ClientID%>').removeAttribute("disabled");
Измените свой код на-
<asp:ImageButton ID = "btnSearch2" runat = "server" ImageUrl = "~/Images/search.png" Height = "27px" Width = "30px" ImageAlign = "AbsBottom" OnClientClick = "if (!EnableTxt()){return false};"/>
<asp:TextBox ID = "txtSearch" runat = "server" CssClass = "btnSearchStyle" Height = "27px" Width = "134px" onkeypress = "return EnterEvent(event)" BorderStyle = "None" style = "visibility:hidden" BackColor = "#BDC3C7" Enabled = "false"></asp:TextBox>
И измените JS как-
function EnableTxt()
{
var id = document.getElementById('<%=txtSearch.ClientID%>');
if (id.style.visibility === "hidden" && id.getAttribute('disabled'))
{
id.style.visibility = "visible";
id.removeAttribute("disabled");
}
else {
id.style.visibility = "hidden";
id.setAttribute("disabled");
}
}
Я отредактировал код. Просто измените функцию JS, чтобы переключаться между отображением и скрытием. Вы можете проголосовать за ответ, если он был вам полезен :)
Спасибо!! Вы знаете, как я могу сделать его невидимым при втором нажатии?