readonly,disabled是input的属性
ReadOnly,Enabled是asp:TextBox的属性
要求: 客户端不能输入,但可通过js赋值,并在服务器端获取到js赋的值
前台:

TextBox 禁止客户端输入 前台通过JS赋值 并在后台获取<asp:TextBox ID="TextBox1" runat="server" ReadOnly="true" Enabled ></asp:TextBox>
TextBox 禁止客户端输入 前台通过JS赋值 并在后台获取
<input id="Text1" runat="server" type="text" readonly="readonly" />
TextBox 禁止客户端输入 前台通过JS赋值 并在后台获取
<input id="Button1" type="button" value="客户端赋值" onclick="doClick()" />
TextBox 禁止客户端输入 前台通过JS赋值 并在后台获取
<asp:Button ID="Button2" runat="server" Text="服务器端获取" OnClick="Button2_Click" />
TextBox 禁止客户端输入 前台通过JS赋值 并在后台获取
>
后台:
TextBox 禁止客户端输入 前台通过JS赋值 并在后台获取    protected void Button2_Click(object sender, EventArgs e)
    }


TextBox 禁止客户端输入 前台通过JS赋值 并在后台获取
执行服务器端回传前的客户端代码:

TextBox 禁止客户端输入 前台通过JS赋值 并在后台获取<input name="TextBox1" type="text" readonly="readonly" id="TextBox1" class="ClassText" />
TextBox 禁止客户端输入 前台通过JS赋值 并在后台获取
<input name="Text1" type="text" id="Text1" readonly="readonly" />
TextBox 禁止客户端输入 前台通过JS赋值 并在后台获取
<br />
TextBox 禁止客户端输入 前台通过JS赋值 并在后台获取
<input id="Button1" type="button" value="客户端赋值" onclick="doClick()" />
TextBox 禁止客户端输入 前台通过JS赋值 并在后台获取
<input type="submit" name="Button2" value="服务器端获取" id="Button2" class="ClassBtn" />

TextBox 禁止客户端输入 前台通过JS赋值 并在后台获取
执行服务器端回传后的客户端代码:

TextBox 禁止客户端输入 前台通过JS赋值 并在后台获取<input name="TextBox1" type="text" readonly="readonly" id="TextBox1" class="ClassText" />
TextBox 禁止客户端输入 前台通过JS赋值 并在后台获取
<input name="Text1" type="text" id="Text1" readonly="readonly" value="wufeng" />
TextBox 禁止客户端输入 前台通过JS赋值 并在后台获取
<br />
TextBox 禁止客户端输入 前台通过JS赋值 并在后台获取
<input id="Button1" type="button" value="客户端赋值" onclick="doClick()" />
TextBox 禁止客户端输入 前台通过JS赋值 并在后台获取
<input type="submit" name="Button2" value="服务器端获取" id="Button2" class="ClassBtn" />
区别:Text1的value属性前后发生了变化,而TextBox1并不能从后台获取到。

解决:在Page_Load中设置
TextBox1.Attributes["contentEditable"= "false";//等效于ReadOnly="true"
或直接从前台设置TextBox的属性contentEditable="false"

相关文章: