在javascript上将标签更改为文本框
首先,我的英语不是很好,但我会尽量让人理解 我所做的就是创建一个gridview,其中列; 两个控件分别控制一个标签和一个文本框 标签设置为可见 而textbox则相反 下面是我的gridview的客户端代码在javascript上将标签更改为文本框,javascript,asp.net,css,gridview,Javascript,Asp.net,Css,Gridview,首先,我的英语不是很好,但我会尽量让人理解 我所做的就是创建一个gridview,其中列; 两个控件分别控制一个标签和一个文本框 标签设置为可见 而textbox则相反 下面是我的gridview的客户端代码 <asp:Image ID="img" onclick="javascript:Toggle(this);" runat="server" ImageUrl="~/Images/minus.gif" ToolTi
<asp:Image ID="img" onclick="javascript:Toggle(this);" runat="server" ImageUrl="~/Images/minus.gif"
ToolTip="Collapse" Width="7px" Height="7px" ImageAlign="AbsMiddle" /></a>
<asp:Label ID="lbllastname" Height="15px" Width="180px" runat="server" Text='<%# Eval("CourseCatName")%>'></asp:Label>
<asp:TextBox ID="txtCourseCategory" AutoPostBack="true" runat="server" Text='<%# Eval("CourseCatName")%>'
Font-Size="XX-Small" Font-Names="Verdana" Style="display: none" OnTextChanged="txtCourseCategory_TextChanged"
Height="16px" Width="207px"></asp:TextBox><br />
在我的javascript上,我创建了一个函数来调用控件
function validate(txtobj, lblobj) {
document.getElementById(lblobj).style.display = 'none';
document.getElementById(txtobj).style.display = 'block';
}
这样代码就可以工作了,我想差不多完成了,但是当我运行我的程序并点击标签时;
标签隐藏,但文本框在下面,就像在两者之间有一个
我再次检查了代码,但没有发现任何东西可以使下面的文本框。
先生/女士,您认为问题出在哪里?或者我应该为其添加CSS吗?
还是我的代码是个大问题?
我愿意接受建议,不管是好是坏。
顺便说一句,我对javascript真的很陌生
感谢您花时间和精力阅读我的问题。尝试更改以下行:
document.getElementById(txtobj).style.display = 'block';
将是:
document.getElementById(txtobj).style.display = '';
// OR
document.getElementById(txtobj).style.display = 'inline';
如果将元素设置为块
元素,它将显示在下一行,因为块元素就是这样做的。如果将display
属性设置为空字符串,则应通过将其设置为特定元素类型的默认display
类型使其再次可见,对于输入元素,该类型应为inline
。如果这不起作用,您可以显式地将其设置为inline
有关显示的更多信息,请参见此处:-包括图片,甚至在页面底部的动态演示中更改设置。您也可以不使用javascript来完成此操作。 为此,您需要使用2个面板。在一个面板中保留标签,在另一个面板中保留文本框。现在,通过将textbox的visible属性设置为false,使其不可见。
现在,在按钮中单击事件获取标签文本并将其存储在字符串变量中,并将包含标签的面板的visible属性更改为false。然后将包含textbox的面板的visible属性更改为true,并使用变量中的字符串设置text属性。谢谢,先生,您是天使。^也谢谢你的描述。它现在运转良好。
document.getElementById(txtobj).style.display = '';
// OR
document.getElementById(txtobj).style.display = 'inline';