[英]Assigning Text Box Values to a String Array in Javascript?
有沒有一種方法可以將我在多個文本框中輸入的每個值分配給JavaScript中的字符串數組?
<script type="text/javascript">
var ch[];
function getAllValues() {
alert('Entered');
for(var i=0;i<5;i++) {
ch.push(document.getElementsByName("src")[i]);
};
alert(ch);
}
</script>
<form method="post" name="myform" onsubmit="getAllValues();">//
<%
for (int i = 0; i < 5; i++) {
%>
<input type="text" name="src"/ >
<%
}
%>
<input type="submit" value="submit">
</form>
var ch[];
這里有5個文本框。 我想使用JavaScript將此處輸入的值分配到數組中。
有人知道該怎么做嗎? 我被困了兩天。
<script>
var str = "";
function getAllValues() {
var inputs = document.getElementsByTagName('input');
for (i = 0; i < inputs.length; i++) {
str += inputs[i].value + " ";
}
alert(str);
}
</script>
首先,為避免麻煩,您可以考慮為輸入提供唯一的名稱/標識,如下所示:
<% for (int i = 0; i < 5; i++) { %>
<input type="text" name="src<%= i %>" id="src<%= i %>"/ >
<% } %>
然后,您的JavaScript將如下所示:
var inputs = document.querySelectorAll('input[type=text]'),
inputLen = inputs.length,
ch = [],
i,
updateVal = function () {
var id = this.id.replace('src', '');
ch[id] = inputs[id].value;
};
for (i = 0; i < inputLen; i += 1) {
ch[i] = inputs[i].value;
inputs[i].onchange = updateVal;
}
您可以在此演示中看到它的工作原理。 它使用輸入的初始(空白)值填充ch
數組,然后在每次更改輸入時更新值。
給您的輸入一個類,例如inp。 然后您可以編寫:
var result = $('.inp').map(function(m, i){ return i.value;})
結果將是值數組
您可以使用jQuery來做到這一點
var arr = new Array();
$("input[name='src']").each(function () {
arr.push($(this).val());
})
for(i=0;i<5;i++) {
ch.push(document.getElementsByName("src")[i]);
}
<% for(int i=0;i<5;i++) { %>
<input type="text" name="src" onBlur="srcBlur()" />
<% } %>
...
var src = new Array();
function srcBlur(this) {
if(this == document.getElementsByName("src")[0]) src[0] = this.value;
else if(this == document.getElementsByName("src")[1]) src[1] = this.value;
else if(this == document.getElementsByName("src")[2]) src[2] = this.value;
else if(this == document.getElementsByName("src")[3]) src[3] = this.value;
if(src[0] && src[1] && src[2] && src[3] && src[4]) {
for(i=0;i<5;i++) {
ch.push(src[i]);
}
}
}
var stringArr = [];
for (i = 0; i < 6; i++) {
var element = document.createElement("input");
element.setAttribute("type", "text");
element.setAttribute("name", "textbox_" + i);
element.setAttribute("id", "textbox_" + i);
element.onkeyup = function () {
keyPressFunc(this.id)
};
document.body.appendChild(element);
stringArr.push("");
}
function keyPressFunc(elem) {
var index = elem.split("_")[1];
stringArr[index] = document.getElementById(elem).value;
alert(stringArr);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.