我在使用javascript函数将文本框设置为空时出现问题。
如果未选中复选框,则asp:Textbox应禁用并清空。 它发生了,但在后面的代码中,所有时间都可以看到先前在该文本框中输入的值。
<asp:RadioButton ID="radio_fx_no" runat="server" Text="NO" GroupName="optradio1" onclick="CheckBoxChangedDisableFx(this);" />
<asp:RadioButton ID="radio_fx" runat="server" Text="YES" GroupName="optradio1" onclick="CheckBoxChangedAbleFx(this);" />
<asp:TextBox ID="txt_fx" ClientIDMode="Static" runat="server" Enabled="false" />
<script>
function CheckBoxChangedAbleFx(checkbox) {
if (checkbox.checked == true) {
document.getElementById('<%= txt_fx.ClientID %>').disabled = false;
}
}
function CheckBoxChangedDisableFx(checkbox) {
if (checkbox.checked == true) {
document.getElementById('<%= txt_fx.ClientID %>').value = "";
document.getElementById('<%= txt_fx.ClientID %>').disabled = true;
}
}
</script>
我的代码中有什么问题?
答案 0 :(得分:1)
此问题称为缓存浏览器数据。在这种情况下,您可以尝试三件事:
1)每次回发时页面加载事件中textbox
的清除值:
if (IsPostBack)
{
txt_fx.text = "";
}
并在您的aspx代码中生成text =&#34;&#34;:
<asp:TextBox ID="txt_fx" Text="".../>
2)将AutoComplete
的{{1}}属性设置为关闭以进行html输入
或禁用asp textbox的textbox
属性
autocompletetype
3)或将页面的FORM标签的自动完成设置为&#34;关闭&#34;
如果要在没有回发的情况下清除服务器端文本框的实际值,则需要使用AJAX。
希望它会帮助你...... !!
答案 1 :(得分:0)
if(!Page.IsPostBack)
{
radio_fx.Attributes.Add("onClick", "return CheckBoxChangedState(this,false);");
radio_fx_no.Attributes.Add("onClick", "return CheckBoxChangedState(this,true);");
}
并在.aspx文件中,更改如下:
<script type="text/javascript">
function CheckBoxChangedState(checkbox, state) {
if (checkbox.checked == true) {
document.getElementById('<%= txt_fx.ClientID %>').value = "";
document.getElementById('<%= txt_fx.ClientID %>').disabled = state;
}
}
<asp:RadioButton ID="radio_fx_no" runat="server" AutoPostBack="false" Text="NO" GroupName="optradio1" />
<asp:RadioButton ID="radio_fx" runat="server" AutoPostBack="false" Text="YES" GroupName="optradio1" />