文本框的文本不会在提交按钮单击中更新

时间:2014-12-06 07:18:49

标签: javascript c# asp.net

我有两个radiobutton。如果检查其中一个文本框是活动的并获取数据。 它们位于更新页面中。在页面加载中,用数据库中的数据填充它们,然后检查ispostback。 如果文本框在页面加载中有文本,其文本会发生变化,一切正常,但如果它没有文本,则保留默认文本,并且不会在提交按钮单击时更新。

    String val = "0";
    if (radiobutton2.Checked && textbox1.Text.Length != 0)
            val = textbox1.Text;

在页面加载中使用此代码初始化radiobuttons:

    t.ReadOnly = true;
    t.BackColor = System.Drawing.Color.Gray;

并且有一个用于活动和非活动此文本框的JavaScript代码

    function CheckedChanged(rbtnelement, txtelement) {
                    if (document.getElementById(rbtnelement).checked) {
                        document.getElementById(txtelement).readOnly = false;
                        document.getElementById(txtelement).style.backgroundColor = "white";
                    }
                    else {
                        document.getElementById(txtelement).readOnly = true;
                        document.getElementById(txtelement).style.backgroundColor = "grey";
                    }
                }

1 个答案:

答案 0 :(得分:0)

这是因为文本框readonly属性在c#代码中变为false(它在服务器端运行)并且在javascript中变为true(它在客户端运行)。在服务器端(c#代码),文本框保持只读,不发送文本。

如果删除其中一个并在一侧(客户端或服务器)管理文本框,它将正常工作。