关于textbox的textmode属性 请问可否在前台脚本中改变textbox的textmode属性,我想根据输入字符的数量来控制textbox的textmode属性,当超过一定数量时将其属性改为MultiLine. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 效率很不好,你写一个字就得call服务器,有点想GOOGLE suggest. QUOTE:现在就是想通过js来实现--------------------2楼不是说了,你要在客户端修改TextBox的textmode,其实就是修改input的type属性,但这个属性是不可以在客户脚本端修改的。我想可以通过篡改HTML实现,就是将INPUT放在一个容器里,如DIV,为INPUT加个ONCHANGE事件,根据需求,随时修改这个容器的innerhtml,服务端就用request.form["name"].tostring()获取文本。 可通过onchange事件实现,当textbox失去焦点时才会去判断,并不会返回服务器,问题是怎样改变其textmode属性 恩,不能修改type属性,所以考虑一下5楼说的思想,我想应该可以。 SingleTextBox生成的HTML是<input type="text"> MultiTextBox是<textarea>,貌似不能直接改。放2个textBox,后台通过HiddenField取值。下面代码能实现你的要求,当然还有个问题是postback之后会回到原始状态,留给你自己搞定。<asp:TextBox ID="TextBox1" runat="server" onpropertychange="DisplayMulti(this);"></asp:TextBox><asp:TextBox ID="TextBox2" runat="server" TextMode="MultiLine" onpropertychange="DisplaySingle(this);" style="display:none"></asp:TextBox><asp:HiddenField ID="TextBoxValue" runat="server" /><script type="text/javascript"> function DisplayMulti(textBox){ if(textBox.value.length>10){ textBox.style.display="none"; var textArea=document.getElementById("TextBox2"); textArea.value=textBox.value; textArea.style.display="block"; textArea.focus(); }else{ document.getElementById("TextBoxValue").value=textBox.value; } } function DisplaySingle(textArea){ if(textArea.value.length<=10){ textArea.style.display="none"; var textBox = document.getElementById("TextBox1"); textBox.value=textArea.value; textBox.style.display="block"; textBox.focus(); }else{ document.getElementById("TextBoxValue").value=textArea.value; } }</script> 既然都可以MultiLine那干脆改成MultiLine就好了,何必多浪费资源 ajax(updatepanel)和回退按钮 求解:关于C#读取TXT文件 Session清空的问题 多产品信息添加功能! 我的DataList分页有什么问题? 怎么用程序实现word的盖章功能?请问大家有例子吗? MSDN上在介绍安装Duwamish7.0时,有一个安全性要求,这个是我必须要设置的吗? Asp.Net 2.0中怎么调用Windows Media Player ActiveX控件 为什么对同一个字符串重复付值给两个控件的属性时会出错?? 我的存储过程为什么出错?请大家来看一下! 页面分栏 如何通过DataSet创建一个DataView 对象
--------------------
2楼不是说了,你要在客户端修改TextBox的textmode,其实就是修改input的type属性,但这个属性是不可以在客户脚本端修改的。
我想可以通过篡改HTML实现,就是将INPUT放在一个容器里,如DIV,为INPUT加个ONCHANGE事件,根据需求,随时修改这个容器的innerhtml,服务端就用request.form["name"].tostring()获取文本。
放2个textBox,后台通过HiddenField取值。下面代码能实现你的要求,当然还有个问题是postback之后会回到原始状态,留给你自己搞定。
<asp:TextBox ID="TextBox1" runat="server" onpropertychange="DisplayMulti(this);"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server" TextMode="MultiLine" onpropertychange="DisplaySingle(this);" style="display:none"></asp:TextBox>
<asp:HiddenField ID="TextBoxValue" runat="server" />
<script type="text/javascript">
function DisplayMulti(textBox){
if(textBox.value.length>10){
textBox.style.display="none";
var textArea=document.getElementById("TextBox2");
textArea.value=textBox.value;
textArea.style.display="block";
textArea.focus();
}else{
document.getElementById("TextBoxValue").value=textBox.value;
}
}
function DisplaySingle(textArea){
if(textArea.value.length<=10){
textArea.style.display="none";
var textBox = document.getElementById("TextBox1");
textBox.value=textArea.value;
textBox.style.display="block";
textBox.focus();
}else{
document.getElementById("TextBoxValue").value=textArea.value;
}
}
</script>