显示表单的用户输入

Posted

技术标签:

【中文标题】显示表单的用户输入【英文标题】:Display user input for form 【发布时间】:2015-02-07 16:52:13 【问题描述】:

所以我制作了一个包含多个输入的表单。我想在用户单击提交后在同一页面上显示用户的输入。但是,我的代码只显示第一个输入。由于某种原因,它没有抓住其他人。此外,所需的字段正在被我编码的 java 覆盖。这是我的html

<body>
  <div class = "content">
        <h2>Provide Your Contact Information</h2>
        <form id="theForm" method="get" action="submitData">
            <table>
                <tr>
                    <td>First name:</td>
                    <td><input type="text" size = "25" id="user_input" name="name" placeholder="Type your first name" /></td>
            <tr>
                    <td>Middle name:</td>
                    <td><input type="text" size = "25" id="user_input" name="mname" placeholder="Type your middle name" /></td>
            <tr>
                    <td>Last name:</td>
                    <td><input type="text" size = "25" id="user_input" name="lname" placeholder="Type your last name" required/></td>

  </table>
        <table>
            <h3>Provide your login access information</h3>
            <tr>
                <td>Login ID:</td>
                    <td><input type="text" id="user_input" name="login" placeholder="Type a login id" required/></td>
        </table>

    </form>
    </div>
        <div class = "contentright">
            <tr>
                <td><input type="submit" onclick="showInput();" ></td>
                <td><label>Your input: </label><br /></td>
                <td><p><span id='display'></span> </p></td>
        </div>

我的java代码:

 function showInput() 

        var message_entered =  document.getElementById("user_input").value;

    document.getElementById('display').innerHTML = message_entered;

谢谢

更新****

 function validateForm() 
    return (isNotEmpty("name", "Please enter your name!")
    && isNotEmpty("lname", "Please enter your last name!")
    && isSelected("city", "Please make a selection!")
    && isSelected("state", "Please make a selection!")
    && isNumeric("zipcode", "Please enter a 5-digit zip code!")
    && isLengthMinMax("zipcode", "Please enter a 5-digit zip code!", 5, 5)
    && isNumeric("phone", "Please enter a valid phone number!")
    && isValidEmail("email", "Enter a valid email!")
    && isLengthMinMax("login", "Enter a valid login id!", 10, 25)
    && isLengthMinMax("password", "Enter a valid password!", 6, 8));

我想要完成的是例如邮政编码,我只希望用户能够输入 5 位数字。我还想验证电子邮件或密码等内容。

【问题讨论】:

你应该为不同的html控件使用不同的id属性。 【参考方案1】:

你只是捕捉到 1 个输入。正确的做法是捕获所有输入并循环遍历它们。

 function showInput() 
   
    var form = document.forms[0].elements;
    var message_entered = "";

    for(var i = 0, j = form.length;i < j;i++) 
    

        if(form[i].type == "text") message_entered += (form[i].value + " - ");

    

    document.getElementById('display').innerHTML = message_entered;


您可能还想为您的输入提供不同的 ID。

在这里查看示例工作:http://jsfiddle.net/vjk3zngh/

【讨论】:

谢谢!现在我的问题是所需的输入。当用户未回答必填字段时,应显示弹出窗口。 我放的代码是我尝试过的一个例子,我对不同的想法持开放态度。【参考方案2】:

我认为问题在于您为所有输入提供了相同的 ID。它们会重叠,你最终只会得到最后一个结果。尝试切换到不同的 ID 或改用一个类。

【讨论】:

以上是关于显示表单的用户输入的主要内容,如果未能解决你的问题,请参考以下文章

用户输入表单后显示数据(mysql-nodejs)

弹出框显示在表格视图中长用户输入表单的顶部

当用户从 MS Access 的组合框中选择“其他”时,如何显示输入表单?

php 表单的输入字段显示数据库用户名和密码

FORM表单

在后台刷新 vb6 表单而不会丢失用户输入的数据