奇怪的行为 - 序列化

时间:2011-10-22 14:04:16

标签: javascript jquery serialization dojo

我有这段代码:

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

有什么想法吗?感谢

1 个答案:

答案 0 :(得分:3)

在滑块初始化期间,将创建<input type="hidden" name="input0" ... /> 使用滑块后,此input获取当前滑块值(0sizes.length - 1之间的数字)。 onChange使用名为sizes的数组中的值设置另一个html输入标记 提交serializeArray()时,会获取具有name属性的所有输入字段的值 在我的EXAMPLE中,我提供了将在onChange a 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>