首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自javascript的json记录,espace空记录

来自javascript的json记录,espace空记录
EN

Stack Overflow用户
提问于 2018-11-06 20:06:34
回答 1查看 67关注 0票数 0

我希望在JSON数组中记录输入到我的表单中,但是我不知道为什么它用"{}“记录空项,当我想要使用它时,这是我的视图表单的bug。

我的javascript代码:

代码语言:javascript
复制
function update_CF_Data(CF_SortablesForm){
    var mySelector = $("#cf-sortables-form");
    var data_array = new Array();
    $("#cf-sortables-form :input").not("#cf-sortables-form :input[class=optionprix]").each(function(){

        var optionPrix = $(this).siblings("input.optionprix").val();
        var item = {};
        item['name'] = $(this).attr('name');
        item['value'] = $(this).attr('value');

        if ($(this).hasClass('optionname')){
        item['optionprix'] = optionPrix;
        }

        data_array.push(item);

    });
    var sortableContent = JSON.stringify(data_array);
    $('#custom_fields').val(sortableContent);

};

html表单:

代码语言:javascript
复制
<form id="cf-sortables-form">
<ul>
    <li class="ui-state-default">
    <small>Radio Buttons</small>
    <p><input class="cf-required-checkbox" checked="checked" type="checkbox" name="required---4969523" id="required---4969523"> <label for="required---4969523">Champs Obligatoire</label></p>
    <input type="text" name="radio-buttons-label---4969523___required" value="Utilisateurs :">
        <ul id="cf-radio-buttons" class="ui-sortable">
        <li class="ui-state-default">
            <input type="text" class="optionname" name="single-radio-button---4969523" value="1 ou 2">
            <img src="images/icon-euro.png" alt="Prix" width="16" height="16">
            <input type="text" class="optionprix" name="single-radio-button---4969523" value="0">
            </li>
        </ul>
    <button class="cfButton button" data-type="single-radio-button"><i class="booked-icon booked-icon-plus"></i>&nbsp;&nbsp;Radio Button</button>
    </li>
    <li class="ui-state-default">
    <small>Checkboxes</small>
    <p><input class="cf-required-checkbox" checked="checked" type="checkbox" name="required---8940009" id="required---8940009"> <label for="required---8940009">Champs Obligatoire</label></p>
    <input type="text" name="checkboxes-label---8940009___required" value="Options Payantes :">
        <ul id="cf-checkboxes" class="ui-sortable">                         
            <li class="ui-state-default">
            <input type="text" class="optionname" name="single-checkbox---8940009" value="Option 1" optionprix="5">
            <img src="images/icon-euro.png" alt="Prix" width="16" height="16">
            <input type="text" class="optionprix" name="single-checkbox---8940009" value="5">
            </li>                         
        </ul>
    <button class="cfButton button" data-type="single-checkbox"><i class="booked-icon booked-icon-plus"></i>&nbsp;&nbsp;Checkbox</button>
    </li>
    <li class="ui-state-default">
    <small>Paragraphe de texte</small>
    <p><input class="cf-required-checkbox" checked="checked" type="checkbox" name="required---6402519" id="required---6402519"> <label for="required---6402519">Champs Obligatoire</label></p>
    <input type="text" name="paragraph-text-label---6402519___required" value="Remarque éventuelle :">
    </li>
</ul>
</form>

JSON记录数组:

代码语言:javascript
复制
[{\"name\":\"required---4969523\",\"value\":\"on\"},{\"name\":\"radio-buttons-label---4969523___required\",\"value\":\"Utilisateurs :\"},{\"name\":\"single-radio-button---4969523\",\"value\":\"1 ou 2\",\"optionprix\":\"0\"},{},{\"name\":\"required---8940009\",\"value\":\"on\"},{\"name\":\"checkboxes-label---8940009___required\",\"value\":\"Options Payantes :\"},{\"name\":\"single-checkbox---8940009\",\"value\":\"Option 1\",\"optionprix\":\"5\"},{},{\"name\":\"required---6402519\",\"value\":\"on\"},{\"name\":\"paragraph-text-label---6402519___required\",\"value\":\"Remarque éventuelle :\"}]

我通过分析表单中的每个输入进行搜索,但我仍然不知道为什么它会记录空数组。

也许我可以找到一种方法,如果项目等于{},则保留/避免记录?

EN

回答 1

Stack Overflow用户

发布于 2018-11-07 05:39:54

问题修复后,发现我的问题是从“按钮”。

我不知道为什么,但javascript将每个“按钮”记录为一个空对象,所以我只是在jquery上添加了一个新的.not条件来过滤“按钮”,这没问题。

代码语言:javascript
复制
$("#cf-sortables-form :input").not("#cf-sortables-form :input[class=optionprix]").not("#cf-sortables-form :button").each(function(){

您可以查看这个jsfiddle => http://jsfiddle.net/q8gwcor0/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53171575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档