2011-05-22 53 views
2

UPDATE从一个文本框的文本
好吧,试图“.value的”神后再次知道的时间x量,有些是如何工作的.....问题解决了。非常感谢那些已经回复的人。
UPDATE如何获取在Javascript

我怎样才能获得我的形式使用Javascript我的HTML页面上的文本(字符串)?

我只想把输入到文本框中的任何东西写入我的XML文件。
例如,如果我在文本框中输入“HELLO”,我想要在XML文件中写入“HELLO”。

我已经尝试了“.value”和“.text”,他们不工作。也试过“.textcontent”,也不好。我在想我需要使用不同的代码。

这里是什么,我试图做一个形象:
http://img94.imageshack.us/img94/5677/sdfsdfsdfs.jpg

这里有文件,如果你想惹他们个人的看法:
http://www.mediafire.com/?e29t6ipatsqun70

这是我的HTML文件:

<html> 
    <!--onSubmit="SaveXML(person);"--> 
    <head> 
    <title>Registration</title> 
    <link rel="stylesheet" type="text/css" href="CSS_LABs.css" /> 
    </head> 

    <body> 
    <script type="text/javaScript" src="LoginJS.js"> </script> 
    <script type="text/javaScript" src="writeXML.js"> </script> 

    <div class="form"> 
    <form id="Registration" name="reg" action="" method="get" onSubmit="initialize_array()"> 

    Username:<input type="text" name="Usrname" id="Usrname" maxlength="10"/> <br/> 
    Password:<input type="password" name="Pswd" id="Pswd" maxlength="20"/> <br/> 

    <hr> 

    PersonID:<input type="text" name="PersonID" id="PersonID"/> <br> 

    <hr> 

    First Name:<input type="text" name="FirstName" id="FirstName"/> <br> 
    Last Name:<input type="text" name="LastName" id="LastName"/> 

    <hr> 

    DOB:<input type="text" name="DOB" id="DOB"/> <br> 

    <hr> 

    Gender:<input type="text" name="Gender" id="Gender"/> <br> 

    <hr> 

    Title:<input type="text" name="Title" id="Title"/> <br> 

    <hr> 

    <!--Secret Question:<br> 
    <select name="secret?"> 
    </select> <br> 

    Answer:<input type="text" name="answer" /> <br> <br>--> 

    <input type="submit" value="submit" /> 

    </form> 
    </div> 

    </body> 

    </html> 

这里是我的JavaScript文件:

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
    var fso = new ActiveXObject("Scripting.FileSystemObject"); 
    var FILENAME = 'G:\\CST2309 - Web Programming 1\\Copy of Take Home Exam - Copy\\PersonXML2.xml'; 

    function SaveXML(UserData) 
    { 
     var usrn = document.getElementById("Username").text; 
     var pswd = document.getElementById("Pswd").text; 
    var pid = document.getElementById("PersonID").text; 
     var fname = document.getElementById("FirstName").text;  //This is where I'm having trouble with 
    var lname = document.getElementById("LastName").text; 
     var gender = document.getElementById("Gender").text; 
    var dob = document.getElementById("DOB").text; 
     var title = document.getElementById("Title").text; 

     var file = fso.CreateTextFile(FILENAME, true); 
     file.WriteLine('<?xml version="1.0" encoding="utf-8"?>\n'); 
     file.WriteLine('<PersonInfo>\n'); 

     for (countr = 0; countr < UserData.length; countr++) { 
      file.Write(' <Person '); 
      file.Write('Usrname="' + UserData[countr][0] + '" '); 
      file.Write('Pswd="' + UserData[countr][1] + '" '); 
    file.Write('PersonID="' + UserData[countr][2] + '" '); 
      file.Write('FirstName="' + UserData[countr][3] + '" '); 
      file.Write('LastName="' + UserData[countr][4] + '" '); 
      file.Write('Gender="' + UserData[countr][5] + '" '); 
      file.Write('DOB="' + UserData[countr][6] + '" '); 
      file.Write('Title="' + UserData[countr][7] + '"'); 
      file.WriteLine('></Person>\n'); 
     } // end for countr 

     file.Write(' <Person '); 
     file.Write('Usrname="' + usrn + '" '); 
     file.Write('Pswd="' + pswd + '" '); 
    file.Write('PersonID="' + pid + '" '); 
     file.Write('FirstName="' + fname + '" '); 
     file.Write('LastName="' + lname + '" '); 
     file.Write('Gender="' + gender + '" '); 
     file.Write('DOB="' + dob + '" '); 
     file.Write('Title="' + title + '" '); 
     file.WriteLine('></Person>\n'); 

     file.WriteLine('</PersonInfo>\n'); 
     file.Close(); 

    } // end SaveXML function -------------------- 

    function LoadXML(xmlFile) 
    { 
     xmlDoc.load(xmlFile); 
     return xmlDoc.documentElement; 
    } //end function LoadXML() 

    function initialize_array() 
    { 
     var person = new Array(); 
     var noFile = true; 
     var xmlObj; 
     if (fso.FileExists(FILENAME)) 
     { 
      xmlObj = LoadXML(FILENAME); 
      noFile = false; 
      } // if 
     else 
     { 
      xmlObj = LoadXML("PersonXML.xml"); 
      //alert("local" + xmlObj); 
      } // end if 

     var usrCount = 0; 
     while (usrCount < xmlObj.childNodes.length) 
     { 
      var tmpUsrs = new Array(xmlObj.childNodes(usrCount).getAttribute("Usrname"), 
            xmlObj.childNodes(usrCount).getAttribute("Pswd"), 
         xmlObj.childNodes(usrCount).getAttribute("PersonID"), 
            xmlObj.childNodes(usrCount).getAttribute("FirstName"), 
            xmlObj.childNodes(usrCount).getAttribute("LastName"), 
            xmlObj.childNodes(usrCount).getAttribute("Gender"), 
            xmlObj.childNodes(usrCount).getAttribute("DOB"), 
            xmlObj.childNodes(usrCount).getAttribute("Title")); 
      person.push(tmpUsrs); 
      usrCount++; 
      } //end while 
     if (noFile == false) 
      fso.DeleteFile(FILENAME); 
     SaveXML(person); 
    } // end function initialize_array() 
+2

你知道这只会在IE浏览器?而且你知道你在'for'循环的开头创建了一个全局变量'countr'? – 2011-05-22 22:40:42

+2

顺便说一句,你得到'null'是因为你要求'document.getElementById(“用户名”),而'id'实际上读取'Usrname'。而且AFAIK你应该使用'.value',而不是'.text'。你应该使用'[]'而不是'new Array()'。 – 2011-05-22 22:47:23

+0

没关系,这不是现实世界,只是我正在做的事情。那么,我正在尝试不同的事情,因为.value没有工作。该阵列没有任何问题。无论如何,是否有可能向我展示一个可以使其工作的代码示例? – MNX1024 2011-05-22 22:53:23

回答

0

您可以使用document.getElementById("UsrName").value来获取表单中字段的值。由于您为每个字段使用了ID,所以使用此代码没有问题。

周围的东西:http://www.tek-tips.com/viewthread.cfm?qid=1143011&page=1

+0

是的,那是我的错,没有意识到有一个错字。问题在于代码不会抓取我输入的文本并将其放入XML文件中。 – MNX1024 2011-05-23 00:24:35

0

这里是它的工作的例子。我改变了一些功能,周围只是为了显示功能正确眼看值:

http://jsfiddle.net/73gbH/1

但是就像大家说的变化.text.value