<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在用户没有写任何内容时失去焦点,请返回该默认文本。
我无法实现这一目标,如果用户确实写了一些东西,并且再次失去了焦点,则文本框再次变得空了。
谢谢。
编辑
修复了IFS内部的==,现在看起来像
<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>
但是,当我第一次单击它时,它没有清洁DEAFULT数据。如果我删除它,然后失去焦点,则显示<%=TxtObservaciones.Text.ToString()%>
不是其中持有的价值。
应该是:
if (this.value == '') {}
作为 ==
比较值, =
asigns一个值。
尝试一下,构建insertusernamehere的建议。
onclick="if(this.value=='<%=_data.Obsprevia.ToString()%>'){this.value=''}"
onblur="if(this.value==''){this.value=document.getElementById('<%= TxtObservaciones.ClientID %>').value}"
这获取从JavaScript中的文本框中设置的内容,以防它在浏览器中更改。
您可能还需要将代码分解为函数
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();"
类似的东西?
<input type="text" value="Search..." onclick="if(this.value=='Search...'){this.value=''}" onblur="if(this.value==''){this.value='Search...'}">
我不熟悉ASP,但希望这可以有所帮助:)