如何从Javascript中的文本框中获取文本

时间:2011-05-22 22:29:35

标签: javascript html xml

更新
好吧,在尝试“.value”之后,上帝知道了x次的时间,它有些工作......问题解决了。非常感谢那些做出回应的人 的 更新

如何使用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 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

这是一个工作的例子。我改变了一些功能只是为了表明函数正确地看到了值:

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

但是像所有人都说改变.text.value