I have a basic input form consisting of name, age, email, password. I'm trying to pass that from the HTML to Javascript, which then converts it into a JSON string in an external JSON file that I can then pull from later. I can't seem to get it to post the input data to my json file. My JSON file is named 'formdata', and it is in the same directory as my html/javascript, as well as my jquery. Do you see what could be causing it?
    <main>
    <form id="myform" type="post">
        <fieldset>
            <legend>Sign Up</legend>
            <p>Please sign up for our website here!</p>
            <div class="elements">
                <label for="name">Name :</label>
                <input required="required" type="text" onfocus="this.value=''" value="Please enter your name here" name="name" size="25" />
            </div>
            <div class="elements">
                <label for="username">Username :</label>
                <input required="required" type="text" onfocus="this.value=''" value="Please enter your email here" name="email" size="25" />
            </div>
            <div class="elements">
                <label for="email">Email :</label>
                <input required="required" type="text" onfocus="this.value=''" value="Please enter your email here" name="email" size="25" />
            </div>
            <div class="elements">
                <label for="password">Password :</label>
                <input required="required" type="password" value="" name="password" size="32" minlength="6" maxlength="32" />
            </div>
            <div class="elements">
                <label for="age">Age :</label>
                <input required="required" type="number" value="" id="age" name="age" size="3" />
            </div>
            <div class="elements">
                <label for="gender">Gender :</label>
                <input type="radio" name="gender" value="Male" checked="checked" id="r1"> Male
                <input type="radio" name="gender" value="Female" id="r2"> Female
            </div>
            <div class="submit">
                <input type="submit" id="submit" name="submit" class="btn" value="Send" />
            </div>
        </fieldset>
    </form>
    <script type="text/javascript">
        $(document).ready(function() {
            $("#btn").click(function(e) {
                var jsonData = {};
                var formData = JSON.stringify($("#formdata").serializeArray());
                $.each(formData, function() {
                    if (jsonData[this.name]) {
                        if (!jsonData[this.name].push) {
                            jsonData[this.name] = [jsonData[this.name]];
                        }
                        jsonData[this.name].push(this.value || '');
                    } else {
                        jsonData[this.name] = this.value || '';
                    }
                });
                console.log(jsonData);
                $.ajax({
                    url: "action.php",
                    type: "POST",
                    data: formData,
                    success: function(){},
                    dataType: "json",
                    contentType : "application/json",
                });
                e.preventDefault();
            });
        });
    </script>
<script src="https://code.jquery.com/jquery-3.1.1.js" integrity="sha256-16cdPddA6VdVInumRGo6IbivbERE8p7CQR3HzTBuELA=" crossorigin="anonymous"></script>
    </main> 
    