2016-11-10 45 views
0

由于某些原因,此代码未将输入保存到数组中。我也无法使用循环显示数组,但我确定这与无法将元素存储到数组中有关。我怎样才能解决这个问题?未保存并显示的Javascript html数组

var full_name; 
 
    var dob; 
 
    var gender; 
 
    var nameList = new Array(); 
 
    var dateList = new Array(); 
 
    var genderList = new Array(); 
 
    var listLength = nameList.length; 
 

 
    function displayMembers(nameList, dateList, genderList, listLength) 
 
    { 
 
     var str = " "; 
 
     for(var i = 0;i < listLength; i++) { 
 
       document.write(nameList); 
 
       document.write(dateList); 
 
       document.write(genderList); 
 
     } 
 
    } 
 
    function saveMember(nameList, dateList, genderList) 
 
    { 
 
     nameList[0]=data.push(document.getElementByName("full_name").value); 
 
     dateList[0]=data.push(document.getElementByName("dob").value); 
 
     genderList[0]=data.push(document.getElementByName("gender").value); 
 
    } 
 
    function clearList() 
 
    { 
 
     nameList= []; 
 
     dateList= []; 
 
     genderList= []; 
 
    }
<html> 
 
<head> 
 
<title> INTERNET TECHNOLOGIES CLUB MEMBER LIST </title> 
 
</head> 
 
<body> 
 
    <form name="memberForm"> 
 
     <h1> 
 
     INTERNET TECHNOLOGIES CLUB MEMBER LIST 
 
     </h1> Full name: 
 
     <input type="text" name="full_name" value="" /> Date of Birth: 
 
     <input type="text" name="dob" value="" /> 
 
     <br> 
 
     <br> Gender: 
 
     <input type="text" name="gender" value="" /> 
 
     <br> 
 
     <br> 
 
     <textarea name="textBox" rows="10" cols="70"> 
 
      Full Name Date of Birth Gender 
 
     </textarea> 
 
     <br> 
 
     <input type="button" value="NEXT" onclick="saveMember()" /> 
 
     <input type="button" value="DISPLAY" onclick="displayMembers()" /> 
 
     <input type="button" value="CLEAR" onclick="clearList()" /> 
 
    </form> 
 
</body> 
 
</html>

+2

的结果,它会覆盖整个文件,JavaScript和所有 – adeneo

+0

我应该使用,而不是文件撰写什么?我应该使用toString()吗? –

+0

也许将所有内容存储在本地变量中,然后使用文档写入? – Gino

回答

0

有多种问题,在你的代码

var full_name; 
 
var dob; 
 
var gender; 
 
var nameList = new Array(); 
 
var dateList = new Array(); 
 
var genderList = new Array(); 
 

 
function displayMembers() {//since the arrays are global, no need to pass them as argument 
 
    var str = []; 
 
    //the list length should be read in the function else it will always be 0 
 
    var listLength = nameList.length; 
 
    //should not use document.write() as calling it after document is loaded will completely overwrite the dom 
 
    for (var i = 0; i < listLength; i++) { 
 
    str.push('Name: ' + nameList[0]) 
 
    str.push('Date: ' + dateList[0]) 
 
    str.push('Gender: ' + genderList[0]) 
 
    } 
 
    document.getElementById('display').innerHTML = str.join('<br />'); 
 
} 
 

 
function saveMember() {//since the arrays are global, no need to pass them as argument 
 
    //you need to push the values to the array, there is nothing called data 
 
    nameList.push(document.getElementsByName("full_name")[0].value); 
 
    dateList.push(document.getElementsByName("dob")[0].value); 
 
    genderList.push(document.getElementsByName("gender")[0].value); 
 
} 
 

 
function clearList() { 
 
    nameList = []; 
 
    dateList = []; 
 
    genderList = []; 
 
}
<form name="memberForm"> 
 
    <h1> 
 
INTERNET TECHNOLOGIES CLUB MEMBER LIST 
 
</h1> Full name: 
 
    <input type="text" name="full_name" value="" />Date of Birth: 
 
    <input type="text" name="dob" value="" /> 
 
    <br> 
 
    <br>Gender: 
 
    <input type="text" name="gender" value="" /> 
 
    <br> 
 
    <br> 
 
    <textarea name="textBox" rows="10" cols="70"> 
 
    Full Name Date of Birth Gender 
 
    </textarea> 
 
    <br> 
 
    <input type="button" value="NEXT" onclick="saveMember()"> 
 
    <input type="button" value="DISPLAY" onclick="displayMembers()"> 
 
    <input type="button" value="CLEAR" onclick="clearList()"> 
 
</form> 
 
<div id="display"> 
 
</div>

0
var full_name; 
var dob; 
var gender; 
var nameList = new Array(); 
var dateList = new Array(); 
var genderList = new Array(); 
var listLength = nameList.length; 

取出参数,因为你没有传递任何

function displayMembers() 
    { 
     var str = " "; 
     for(var i = 0;i < listLength; i++) { 
       document.write(nameList); 
       document.write(dateList); 
       document.write(genderList); 
     } 
    } 

全部是全局变量。直接将值推送到数组。

function saveMember() 
    { 
     nameList.push(document.getElementsByName("full_name")[0].value); 
     dateList.push(document.getElementsByName("dob")[0].value); 
     genderList.push(document.getElementsByName("gender")[0].value); 
    } 

    function clearList() 
    { 
     nameList= []; 
     dateList= []; 
     genderList= []; 
    } 
0

你的代码中有很多错误。查看差异,你会得到你做了,你尽量不要使用`document.write`需要

</html> 
<head> 
<script language = "javascript"> 
var full_name; 
var dob; 
var gender; 
var nameList = new Array(); 
var dateList = new Array(); 
var genderList = new Array(); 


function displayMembers() 
{ 
    var textArea = document.getElementsByName("textBox")[0]; 
    textArea.value +="\n"+nameList[nameList.length-1] + "\t\t\t"+dateList[dateList.length-1] + "\t\t\t"+genderList[genderList.length-1]; 

} 
function saveMember() 
{ 
    nametemp = document.getElementsByName("full_name"); 
    nameList.push(nametemp[0].value); 

    datetemp = document.getElementsByName("dob"); 
    dateList.push(datetemp[0].value); 

    gendertemp = document.getElementsByName("gender"); 
    genderList.push(gendertemp[0].value); 

} 
function clearList() 
{ 
    nameList= []; 
    dateList= []; 
    genderList= []; 

} 
</script> 
<title> INTERNET TECHNOLOGIES CLUB MEMBER LIST </title> 
</head> 
<body> 
<form name = "memberForm"> 
<h1> 
INTERNET TECHNOLOGIES CLUB MEMBER LIST 
</h1> 
Full name: <input type ="text" name= "full_name" value = ""/> 
Date of Birth: <input type="text" name= "dob" value = ""/> 
<br> 
<br> 
Gender: <input type="text" name= "gender" value = ""/> 
<br> 
<br> 
<textarea name="textBox" rows = "10" cols= "70"> 
Full Name    Date of Birth   Gender 
</textarea> 
<br> 
<input type= "button" value= "NEXT" onclick = "saveMember()"></button> 
<input type= "button" value= "DISPLAY" onclick = "displayMembers()"> </button> 
<input type= "button" value= "CLEAR" onclick = "clearList()"></button> 
</form> 
</body> 
</html> 
+0

这一切似乎工作正常。我试图通过存储每次用户单击下一个时输入的值,然后在用户选择显示时显示数组来显示文本区域中的列表。每当我用数据输入字段并尝试点击下一个时,什么都不会发生。所以我相信我在处理这些事件时遇到了麻烦。你有什么建议如何解决这个问题,并显示在文本区域? –

+0

您可以使用以下功能替换显示屏成员,这些功能将使用某些格式来获得适合您的功能** displayMembers() {0} {0} textArea = document.getElementsByName(“textBox”)[0]; textArea.value + =“\ n”+ nameList [nameList.length-1] +“\ t \ t \ t”+ dateList [dateList.length-1] +“\ t \ t \ t”+ genderList [genderList 。长度-1]; } ** –