<asp:TextBox ID="TxtBOX"
runat="server"
CssClass="text"
Height="32px"
Width="360px"
TextMode=MultiLine
TextWrapping="Wrap"
AcceptsReturn="True"
VerticalScrollBarVisibility="Visible"
onclick="if(this.value='<%=_data.Obsprevia.ToString()%>'){this.value=''}"
onblur="if(this.value=''){this.value='<%=TxtObservaciones.Text.ToString()%>'}">
</asp:TextBox>
这是我的代码。
默认TxtBOX.Text来自后面的代码(_data_obsprevia)。我想要实现的是,一旦用户点击文本框,就清理该默认文本。如果txbox在用户没有写任何内容时失去焦点,请返回该默认文本。
我无法实现这一点,如果用户DID写了一些东西,再次失去焦点,文本框又会变空。
感谢。
修改
修正了IF内部的==,现在它看起来像这样
<asp:TextBox ID="TxtBOX"
runat="server"
CssClass="text"
Height="32px"
Width="360px"
TextMode=MultiLine
TextWrapping="Wrap"
AcceptsReturn="True"
VerticalScrollBarVisibility="Visible"
onclick="if(this.value=='<%=_data.Obsprevia.ToString()%>'){this.value=''}"
onblur="if(this.value==''){this.value='<%=TxtObservaciones.Text.ToString()%>'}">
</asp:TextBox>
但是当我第一次点击它时,它并没有清理那些聋人的数据。如果我删除它并失去焦点,它会显示<%=TxtObservaciones.Text.ToString()%>
不是它内部的价值。
答案 0 :(得分:2)
应该是:
if (this.value == '') {}
当==
比较值时,=
会分配一个值。
答案 1 :(得分:1)
试试这个,构建到insertusernamehere的建议..
onclick="if(this.value=='<%=_data.Obsprevia.ToString()%>'){this.value=''}"
onblur="if(this.value==''){this.value=document.getElementById('<%= TxtObservaciones.ClientID %>').value}"
如果在浏览器中更改了文本框,则会从文本框中设置内容。
您可能还需要将代码分解为函数
function TxtBOX_OnClick() {
var TxtBOX = document.getElementById("<%= TxtBOX.ClientID %>");
if (TxtBOX.value == "<%=_data.Obsprevia.ToString()%>") {
TxtBOX.value = '';
}
}
function TxtBOX_OnBlur() {
var TxtBOX = document.getElementById("<%= TxtBOX.ClientID %>");
if (TxtBOX.value == '') {
TxtBOX.value = document.getElementById("<%= TxtObservaciones.ClientID %>").value;
}
}
和
onclick="TxtBOX_OnClick();"
onblur="TxtBOX_OnBlur();"
答案 2 :(得分:0)
这样的东西?
<input type="text" value="Search..." onclick="if(this.value=='Search...'){this.value=''}" onblur="if(this.value==''){this.value='Search...'}">
我不熟悉ASP,但希望这有助于:)