将 Html 表单信息存储到数组对象中并将其显示在表单下方的表格中[关闭]

问题描述 投票:0回答:4
 <!DOCTYPE html>
    <html>
        <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta name="description" content="">
        <meta name="author" content="">
        <link rel="shortcut icon" href="">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">
        <style>body{padding-top:50px;}.starter-template{padding:40px 15px;text-align:center;}</style>  
            <link rel="stylesheet" type="text/css" href="createdesign.css">
        </head>
        <body> 

              <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
            <div class="container">
                <div class="navbar-header">
                    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                        <span class="sr-only">Toggle navigation</span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </button>
                    <a class="navbar-brand" href="Newsfeed.html">NPSS Announcements</a>
                </div>

                <div class="collapse navbar-collapse">
                    <ul class="nav navbar-nav">
                        <li><a href="Newsfeed.html">Newsfeed</a></li>
                        <li><a href="Create.html">Create</a></li>
                        <li><a href="Calender.html">Calender</a></li>
                        <li><a href="login.html">Logout</a></li>

                    </ul>
                </div><!--.nav-collapse -->
            </div>
        </nav>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>  

    <h1>Create A New Announcement</h1>
            <form action="action_page.php">
              Announcement Title: <input type="text" name="ATitle" size="50">
      <br>
      Descritption:<br> 
      <br>
              <input type="radio" name="sex" value="male" checked>Male
                <input type="radio" name="sex" value="female" checked>Female
                <br> 
                When is the Meeting?<input type="datetime-local" name="Awhen" </input>
                <br>
                Where is the Meeting<input type="text" name="Awhere"></input>


     </form>



           </body>

    </html>

我试图将 中的所有信息(例如公告标题、描述、性别和时间)放入一个数组(JS)中,以便稍后检索它们并在其他位置显示信息。我是一名初学者程序员,所以请解释一下!我很感谢您的帮助!

javascript html arrays html-table
4个回答
1
投票

您需要了解的基础是您可以访问这些元素并获取它们的值。然后你可以将它们放入一个数组中。以下是如何获取单个元素的值并将其放入数组中。

var myFormData = [];   //declare an array
var value1 = document.getElementById("myTextInput").value;  //get the value of an element by it's id
myFormData.push(value1); //put to the array

接下来,有一些快捷方式可以同时对多个元素执行此操作。

您可以向所有表单字段添加一些类,例如

myInputs
,并使用查询选择器将它们一次性添加到类似数组的列表中。

以下是如何按类别选择多个元素。

var myFormInputs = document.getElementsByClassName("myInputs")

现在

myFormInputs
是一个类似数组的列表。

您可以在

filter
上调用
myFormInputs
函数并获取它们的值。

var myFormData = Array.prototype.filter.call(myFormInputs, function(anElement) {
    return anElement.value;
})

内部函数是按元素调用的 - 所以我们可以返回它的值。现在使用所有这些值创建了

myFormData
数组。


有很多更短的方法可以做到这一点。您可以使用一些优雅的库(例如 JQuery)来实现快速开发和更短的代码。但以上是所有的构建块。

也不要忘记了解JS对象


0
投票

既然你使用的是 jQuery,我就看看

.serialize()
。这可能是将表单数据放入 JavaScript 数组的最简单方法。

https://api.jquery.com/serialize/

或者,您可以构建自己的数组,但我认为由于您是“初学者”,序列化将为您完成所有这些工作。


0
投票

当您支持 IE10+ 时,您应该真正研究一下 FormData 对象,这确实是很酷的东西。它拥有您错过的所有支持。现在,您可以发送自定义的不存在的表单,而无需使用 jQuery 创建表单,例如:

var form = new FormData();
form.append( 'uploaded_file', $('input[type=file]')[0].files[0] );
form.append( 'description', 'I am a cool file, you know...' );

$.ajax({
    url: 'http:/whatev.er/',
    type: 'POST',
    processData: false,
    contentType: false,
    dataType: 'json',
    success: function(data) {

        alert('I just uploaded a file with an AJAX-call so I do not have to refresh the page! Wooo!');
    }
});

0
投票

您可以使用 jQuery 的

.serializeArray()

这是将表单数据转换为数组/对象的方法:


$("#formid").serializeArray();

这就是将数据放回表单的方法:

$.each(form_data, function(n, el) {
   // n is just a number identifying it
   $("#testform input[name='"+el.name+"']").val(el.value);
});

工作演示:https://jsfiddle.net/egbar7r5/

© www.soinside.com 2019 - 2024. All rights reserved.