2011-02-10 225 views
1

我有一個在腳本中定義了8個元素的數組。隱藏的輸入字段

我想知道如何將此數組的所有值傳遞給單個隱藏元素。

請幫忙。

<script ='text/javascript'> 

function abc(){ 

var arr= new Array(8); 
for (var i=0; i<8;i++) 
{ 
arr[i]= ...; 
} 
</script> 
<input type="hidden" id="arrs" name="arrs" value= ? > 
+0

請解釋爲什麼你正在嘗試做一個*單*輸入元素,你在服務器端使用什麼技術。 – Tomalak 2011-02-10 07:17:23

+0

@Tomalak:我將不得不在以後使用document.forms.element('')的其他js訪問此輸入隱藏元素..所以認爲使用單個元素會更容易。如果那是不可能的,那麼請讓我知道,我該如何使用多個隱藏的元素來做到這一點.. thnx – gin 2011-02-10 07:21:06

+0

不要使用`new Array(8)`。只要做`var arr = [];`。沒有必要初始化數組的長度。 – 2011-02-10 08:47:37

回答

1

可以將它們用逗號','

$('#arrs').val(arr.join(',')); 
0

你可以嘗試這樣的:

<script> 
    function a(){ 
     var arr= new Array(8); 
     for (var i=0; i<8;i++) 
     { 
      arr[i]= i; 
     } 
     document.getElementById('d').value = arr; 
     alert(document.getElementById('d').value); 
    } 
</script> 
<input id="d" type="hidden" /> 
<input type="button" onclick="javascript:a();" value="A" /> 

希望這有助於。

0

如果值是唯一的字符串或整數,你可以嘗試用分隔符在輸入中不存在加入他們:

document.getElementById("arrs").value = arr.join("###"); 

你可以做

myArr = document.getElementById("arrs").value.split("###"); 

中檢索該數組回。

1

從對問題本身

的意見,我會在另一個JS訪問後使用document.forms.element('') 此輸入 隱藏的元素。所以 認爲使用單個元素 會更容易。

在所有下最容易不使用任何表單元素。不知道你爲什麼要走這樣的彎路。你有一個JavaScript變量,你可以直接在「另一個腳本後的」使用:

<script type="text/javascript" id="firstScript"> 
    function abc(){ 
    var arr = []; 
    for (var i=0; i<8; i++) { 
     arr.push(...); 
    } 
    return arr; 
    } 

    var myArray = abc(); 
</script> 

<!-- time passes, but we're still on the same page... --> 

<script type="text/javascript" id="anotherScript"> 
    doSomethingWith(myArray); 
</script>