2012-08-04 75 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