Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript解析HTML表单_Javascript_Jquery_Html_Forms - Fatal编程技术网

使用JavaScript解析HTML表单

使用JavaScript解析HTML表单,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我试图用JavaScript解析表单(而不是提交POST请求)。我有一个非常通用的表单,其中一个输入用于球队名称,多个输入用于球员姓名和编号 <!-- INPUT FORM --> <div id="rosters_container"> <!-- AWAY TEAM ROSTER FORM --> <div class="team_roster" style="background-color: blue;">

我试图用JavaScript解析表单(而不是提交POST请求)。我有一个非常通用的表单,其中一个输入用于球队名称,多个输入用于球员姓名和编号

<!-- INPUT FORM -->
<div id="rosters_container">

    <!-- AWAY TEAM ROSTER FORM -->
    <div class="team_roster" style="background-color: blue;">

        <h2 class="team_roster_header">Away</h2>
        <form id="away_form">

            <div id="form_away_players_container">

                <div class="team_name">
                    <label>Team Name</label>
                    <input type="text" placeholder="East High Wildcats"></input>
                </div>

                <div class="form_player_add">
                    <label>Number</label>
                    <input type="text" placeholder="10" size="2"></input>
                    <label>Name</label>
                    <input type="text" placeholder="John Doe" size="15"></input>
                </div>
                <div class="form_player_add">
                    <label>Number</label>
                    <input type="text" placeholder="14" size="2"></input>
                    <label>Name</label>
                    <input type="text" placeholder="John Doe" size="15"></input>
                </div>
                <div class="form_player_add">
                    <label>Number</label>
                    <input type="text" placeholder="22" size="2"></input>
                    <label>Name</label>
                    <input type="text" placeholder="John Doe" size="15"></input>
                </div>
                <div class="form_player_add">
                    <label>Number</label>
                    <input type="text" placeholder="34" size="2"></input>
                    <label>Name</label>
                    <input type="text" placeholder="John Doe" size="15"></input>
                </div>
                <div class="form_player_add">
                    <label>Number</label>
                    <input type="text" placeholder="50" size="2"></input>
                    <label>Name</label>
                    <input type="text" placeholder="John Doe" size="15"></input>
                    <button type="button" onclick="newPlayer('away')">+Player</button>
                </div>
            </div><!-- End form_away_players_container -->

            <button type="button" class="save_players_form" onclick="captureForm('form_away_players_container')">Save</button>
        </form>
    </div>


    <!-- HOME TEAM ROSTER FORM -->
    <div class="team_roster" style="background-color: orange;">

        <h2 class="team_roster_header">Home</h2>
        <form id="home_form">

            <div class="team_name">
                <label>Team Name</label>
                <input type="text" placeholder="West High Knights"></input>
            </div>

            <div id="form_home_players_container">

                <div class="form_player_add">
                    <label>Number</label>
                    <input type="text" placeholder="10" size="2"></input>
                    <label>Name</label>
                    <input type="text" placeholder="John Doe" size="15"></input>
                </div>
                <div class="form_player_add">
                    <label>Number</label>
                    <input type="text" placeholder="14" size="2"></input>
                    <label>Name</label>
                    <input type="text" placeholder="John Doe" size="15"></input>
                </div>
                <div class="form_player_add">
                    <label>Number</label>
                    <input type="text" placeholder="22" size="2"></input>
                    <label>Name</label>
                    <input type="text" placeholder="John Doe" size="15"></input>
                </div>
                <div class="form_player_add">
                    <label>Number</label>
                    <input type="text" placeholder="34" size="2"></input>
                    <label>Name</label>
                    <input type="text" placeholder="John Doe" size="15"></input>
                </div>
                <div class="form_player_add">
                    <label>Number</label>
                    <input type="text" placeholder="50" size="2"></input>
                    <label>Name</label>
                    <input type="text" placeholder="John Doe" size="15"></input>
                    <button type="button" onclick="newPlayer('home')">+Player</button>
                </div>
            </div><!-- End form_home_players_container -->

            <button type="button" class="save_players_form" onclick="captureForm('form_home_players_container')">Save</button>
        </form>
    </div>


</div>
现在,如果用户提交“提交”按钮时,我能将
团队
对象记录到控制台,我会很高兴的。

尝试以下方法:

var teams={};

teams.away={};teams.home={};
teams.away.players=[]; teams.home.players=[];

teams.away.team_name=$("#away_form .team_name input").val();
teams.home.team_name=$("#home_form .team_name input").val();

$("#away_form .form_player_add").each(function(ix,elem){
     var i=$(elem).find('input');
     teams.away.players.push({number:i[0].value,name:i[1].value});
 });
$("#home_form .form_player_add").each(function(ix,elem){
     var i=$(elem).find('input');
     teams.home.players.push({number:i[0].value,name:i[1].value});
 });
虽然不是最漂亮的代码,但它应该可以做到这一点。Serialize方法无法工作,因为您的输入没有“name”属性

希望这有助于

$('away_form')。序列化()?
teams = {
         'away': {
            'team_name': 'Chicago Bulls',
            'players' = [
                 {'number': 10,
                  'name': 'Michael Jordan'
                 },
                 {...}
             ]
         },
        'home': {
             ....
         }
    }
var teams={};

teams.away={};teams.home={};
teams.away.players=[]; teams.home.players=[];

teams.away.team_name=$("#away_form .team_name input").val();
teams.home.team_name=$("#home_form .team_name input").val();

$("#away_form .form_player_add").each(function(ix,elem){
     var i=$(elem).find('input');
     teams.away.players.push({number:i[0].value,name:i[1].value});
 });
$("#home_form .form_player_add").each(function(ix,elem){
     var i=$(elem).find('input');
     teams.home.players.push({number:i[0].value,name:i[1].value});
 });