javascript - 如何使用 jquery 创建 JSON 每个输入值

标签 javascript jquery json

我想以 JSON 格式打印一些数据以供其他应用程序使用。 我应该如何构造 Javascript 对象来动态创建 JSON 格式。

这是我的 HTML 代码:

<div class="col-sm-6">
    <div class="form-group">
        <input type="text" class="form-control" name="frstname" data-conv="json">
        <input type="text" class="form-control" name="lastname" data-conv="json">
        <select name="gender" class="form-control" data-conv="json">
            <option value="male">Male</option>
            <option value="female">Female</option>
        </select>
        <input type="date" class="form-control" name="dob" data-conv="json">
        <input type="text" class="form-control" name="email" data-conv="json">
    </div>
    <div class="form-group">
        <button type="button" class="btn-action" class="btn btn-default">Create</button>
    </div>
</div>

我尝试使用以下 Jquery 代码:

$(document).ready(function(){
    $('.btn-action').on('click', function(){

        var jsonObj = [];
        $("input[data-conv=json]").each(function() {
            var firstname = $(input[name=frstname]).val();
            var lastname  = $(input[name=lastname]).val();
            var gender    = $(input[name=gender]).val();
            var dob       = $(input[name=dob]).val();
            var email     = $(input[name=email]).val();

            item = {}
            item ['firstname']  = firstname;
            item ['lastname']   = lastname;
            item ['gender']     = gender;
            item ['dob']        = dob;
            item ["email"]      = email;

            jsonObj.push(item);
        });
        var jsonString = JSON.stringify(jsonObj);
        console.log(jsonString);
    });
});

我收到错误:

Uncaught ReferenceError: input is not defined

任何帮助将不胜感激!

最佳答案

我收到错误:

Uncaught ReferenceError: input is not defined

您需要使用 '" 将每个输入包装在选择器中:

var firstname = $('input[name=frstname]').val();
var lastname  = $('input[name=lastname]').val();
var gender    = $('input[name=gender]').val();
var dob       = $('input[name=dob]').val();
var email     = $('input[name=email]').val();

与您在这里所做的相同:

$("input[data-conv=json]").each(function() {

不过,如果您有 1 个带有这些控件的论坛,则您不需要每个:-

$(document).ready(function(){
    $('.btn-action').on('click', function(){

        var jsonObj = [];

        var firstname = $('input[name=frstname]').val();
        var lastname  = $('input[name=lastname]').val();
        var gender    = $('input[name=gender]').val();
        var dob       = $('input[name=dob]').val();
        var email     = $('input[name=email]').val();

        item = {}
        item ['firstname']  = firstname;
        item ['lastname']   = lastname;
        item ['gender']     = gender;
        item ['dob']        = dob;
        item ["email"]      = email;

        jsonObj.push(item);

        var jsonString = JSON.stringify(jsonObj);
        console.log(jsonString);
    });
});

但是如果你有多个元素,你需要给元素周围的组一个类:-

<div class="form-group inputs-group">
        <input type="text" class="form-control" name="frstname" data-conv="json">
        <input type="text" class="form-control" name="lastname" data-conv="json">

然后使用findeach:

$(document).ready(function(){
    $('.btn-action').on('click', function(){

        var jsonObj = [];
        $(".inputs-group").each(function() {
            var firstname = $(this).find('input[name=frstname]').val();
            var lastname  = $(this).find('input[name=lastname]').val();
            var gender    = $(this).find('input[name=gender]').val();
            var dob       = $(this).find('input[name=dob]').val();
            var email     = $(this).find('input[name=email]').val();

            item = {}
            item ['firstname']  = firstname;
            item ['lastname']   = lastname;
            item ['gender']     = gender;
            item ['dob']        = dob;
            item ["email"]      = email;

            jsonObj.push(item);
        });
        var jsonString = JSON.stringify(jsonObj);
        console.log(jsonString);
    });
});

关于javascript - 如何使用 jquery 创建 JSON 每个输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33846073/

相关文章:

json - 如何将 XML 文件转换为 JSON 文件

json - FromJSON 从多个字段创建一个列表

javascript - 如何从 URL 获取 JSON

javascript - OpenTok JS websocket 连接超时问题

javascript - Masonry JS 边距问题

javascript - 如何在 jQuery 中对字符串进行 "Quote"处理?

javascript - 字符串中冒号的不区分大小写的正则表达式

javascript - 在 Vanilla javascript中触发键盘事件

javascript - JavaScript 中的 for 循环与 forEach —— 书中的示例

javascript - 修复 IE 占位符的 Javascript 错误