奇怪的行为 - 序列化

Posted

技术标签:

【中文标题】奇怪的行为 - 序列化【英文标题】:strange behaviour - serialize 【发布时间】:2011-10-22 14:04:16 【问题描述】:

我有这个代码:

var sizes = ["1/9","1/8","1/7","1/6","1/5","1/4","1/3","1/2","1/1","2/1","3/1","4/1","5/1","6/1","7/1","8/1","9/1"];

            var slider = new dijit.form.HorizontalSlider(
                value:8,
                name:"value"+[i],
                slideDuration:0,
                onChange:function(val) 
                    dojo.byId('value'+[i]).value = sizes[val];
                    ,
                minimum:0,
                maximum:sizes.length-1,
                discreteValues:sizes.length,
                intermediateChanges:"true",
            ,node);

现在,当我制作时:

 $("#custom").submit(function() 
        var formdata = $("#custom").serializeArray();
        $.ajax(
            url: "insert.php",
            type: "post",
            dataType: "json",
            data: formdata,
            success: function(data) 

);

例如,如果我选择值 1/8,它将作为 1 发送,或 9/1 作为 16。

我想要的是发送小数值,显示在输入框中,但正如我所说,没有发送到 insert.php

有什么想法吗?谢谢

【问题讨论】:

试试var sizes = ["1\/9","1\/8","1\/7"]; @3nigma:我不认为那会解决问题。 / 通常不需要转义。根据 OP 的描述,如果“1/8”作为 1 发送,“9/1”作为 16 发送,我觉得应该发送数组索引。 @darioo 你说得对,我没有把9/1 看成 16 部分... 也许你应该使用 .serialize() 而不是 serializeArray()。 【参考方案1】:

在滑块初始化的开始,将创建一个<input type="hidden" name="input0" ... />。 使用滑块后,input 获取当前滑块值(0sizes.length - 1 之间的数字)。 onChange 设置另一个 html 输入标签,其值来自名为 sizes 的数组。 在提交serializeArray() 时,会获取所有具有name 属性的输入字段的值。 在我的EXAMPLE 中,我为将在 onChange 中填充的输入字段提供了一个 name 属性,因此序列化采用这两个值。

HTML:

<form action="#" id="custom">
    <div id="slider0"></div>
    <input type="text" id="value0" data-dojo-type="dijit.form.TextBox" name="value0" />
    <input type="submit" value="submit" />
</form>

【讨论】:

以上是关于奇怪的行为 - 序列化的主要内容,如果未能解决你的问题,请参考以下文章

java struts2 奇怪的序列化行为(自行舍入大数字)

WCF 奇怪的行为

Quarkus 和 Jackson 奇怪的龙目岛行为

Gson toJson(),奇怪的行为(产生空的 json)

时间序列中 pandas .agg 的奇怪行为

django rest framework SerializerMethodField 奇怪的行为