2012-08-04 109 views
0

我一直在寻找一种方法来动态更改HTML表单中输入字段的长度。 我所遇到如下:所有输入字段的动态输入长度

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>Example</title> 

<script type="text/javascript"> 
window.onload = function() { 
thelink = document.getElementById('MyLink'); 
linksize = thelink.value.length; 
if (linksize < 10) thelink.size = 10; 
if (linksize > 50) thelink.size = 50; 
} 
</script> 
</head> 

<body> 
<input id="MyLink" type="text" value="http://www.domain.com/this/is/a/very/long/link/example" /> 
    </body> 

</html> 

我将如何适应这个为每一个输入领域的工作我非常大的形式?

感谢

+0

评论你的体验提出的问题,你需要接受一些回应。 – devundef 2012-08-04 20:58:50

+0

谢谢你指出,我现在已经这样做了。 – Legs 2012-08-04 21:09:54

回答

1

对于你的情况,我会给予必要的最小值和最大值为data-*=属性,

例如:

<input id="MyLink" data-min="10" data-max="50" type="text" value="http://www.domain.com/this/is/a/very/long/link/example" /> 

然后通过表单输入迭代,从图纸data属性,并检查所需的长度。

0

您可以收集collection中的元素,可以从整个文档或其包含元素中获取元素。您可以使用例如getElementsByTagName('input');getElementsByName('myInput');getElementsByClassName('shapable_input');方法,如果标签已经设置了相应的属性:

<input name="myInput" class="shapable_input" value="...." /> 

,然后所有收集到的标签可以在环测试:

window.onload = function() { 
    var links = document.getElementsByTagName('input'); 
    //var linksc = links.getElementsByClassName('link'); 
    var i, thelink, linksize; 
    for (i = 0; i < links.length; i++) { 
     thelink = links[i]; 
     linksize = thelink.value.length; 
     if (linksize <= 10) { 
      thelink.size = 10; 
     } 
     if (linksize > 10) { 
      thelink.size = 50; 
     } 
    } 
}; 

example