<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script language="javascript">
function change(){
var oValue = document.getElementById('newpass').value;
document.getElementById('ospan').innerText = oValue;
} </script>
</HEAD> <body>
<form><input type="text" name="aa" id="newpass" value="" >
<span id="ospan"></span>
<input type="button" value="change" onclick="change()">
</form> </BODY>
</HTML>
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script language="javascript">
function change(){
var oValue = document.getElementById('newpass').value;
document.getElementById('ospan').innerText = oValue;
} </script>
</HEAD> <body>
<form><input type="text" name="aa" id="newpass" value="" >
<span id="ospan"></span>
<input type="button" value="change" onclick="change()">
</form> </BODY>
</HTML>
还是想直接<sapn>发生发生发生十分</span>把问题说清楚了,最好能做一个图来说明效果
1,检测显示的内容是否超过文本框所能显示的长度。
2,如果是,自动生成span。占据文本框的位置。可能比较难。
比如你设定文本框只能显示50个字
那么你只需要
<%if len(rs("title"))>50 then%>
<sapn><%=rs("title")%></span>
<%else%>
<input type="text" name="aa" value="<%=rs("title")%>" >
<%end if%>
直接服务端代码的if then可以解决
不知我说明白了没有。
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script language="javascript">
function oChange(obj1)
{ if(obj1.value.length>5){
var obj = document.createElement('span');
obj.innerText = obj1.value;
document.body.appendChild(obj);
obj1.parentNode.replaceChild(obj,obj1);
}
return false;}
</script> </script>
</HEAD> <body>
<form>
<table id="test" border='1'>
<tbody>
</tbody></table>
<input type="text" onpropertychange="oChange(this)" value="">小于5 </form> </BODY>
</HTML>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script language="javascript">
function alter(){
var olist = document.getElementsByTagName('input');
for(var i=0;i<olist.length;i++){
o = olist[i]
alert(o+":"+o.type)
if(o.type=="text"||o.type==""){
o.outerHTML = "<span>"+o.value+"</span>"
}
}
} </script>
</HEAD> <body onload="alter()">
<form><input type="text" name="aa" id="newpass" value="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" >
<span id="ospan"></span>
<input type="button" value="change" onclick="change()">
<input type="text" name="aa" id="newpass" value="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasdfas" >
</form> </BODY>
</HTML>
<style>
input{display:block;width:20ex}
</style>
<script language="javascript" type="text/javascript">
window.onload=function(){var s="dff";
var inp=document.getElementsByTagName('input');
for(var i=0;i<inp.length;i++){
if(inp[i].value.length>parseInt(inp[i].currentStyle.width))
{ var s=document.createElement('span');
s.innerText=inp[i].value;
s.style.display="block";
var parent =inp[i].parentNode;
parent.insertBefore(s,inp[i]);
inp[i].style.display="none";
}
}
}
</script>
</head><body>
<input type="text" value="ffffffftttttttttttttttttttttttf">
<input type="text" value="ffffffff">
<input type="text" value="ffffffttttttffggggggg">
<input type="text" value="fffffttttttttttttttttttttttttttfff">
<input type="text" value="fffffttttttttttttttttfff">
<input type="text" value="fffffttttfff">
<input type="text" value="ffffffftttttttttttttfffff">
<input type="text" value="ffffffff">
<input type="text" value="fffffttttttttttttttttttfff">
</body></html>
用JavaScript实现WEB的UI控件,是一个小UI框架了。我也想了一段时间了,呵呵。
是的,用input显示数据,如果数据过长有可能显示不开。
结合上面几位的思路和代码。做了一段js脚本,估算input内容的长度,如果超过input的width,则转成span显示。
现在共享出来请指教。function SetCtrl(len)
{
var j = document.all.tags("INPUT").length;
var array = new Array();
l=0;
for (i=0;i< j; i++ )
{
if(document.all.tags("INPUT")[i].type == "text")
{
n= document.all.tags("INPUT")[i].id;
array[l] = n;
l++;
//alert(i + ':' +n);
}
}
for(k=0;k<array.length;k++)
{
//alert(document.getElementById(array[k]).value);
span = document.createElement("SPAN");
span.innerHTML= document.getElementById(array[k]).value;
obj = document.getElementById(array[k]);
wordWidth = len;
// alert(obj.value+":"+obj.value.replace(/[^\x00-\xff]/g,"**").length*wordWidth/2+":"+obj.clientWidth);
if(obj.value.replace(/[^\x00-\xff]/g,"**").length*wordWidth/2>obj.clientWidth)
{
document.getElementById(array[k]).parentNode.replaceChild(span,document.getElementById(array[k]));
}
}
}