只提交一定数量的数据

时间:2016-03-29 10:19:15

标签: jquery

我有一个带有5个输入框的程序,每个框都是单独显示的,因为我隐藏了显示当前电流后的前一个框和框。我试图让我的程序只从当前框和之前显示的框中提交数据。如果用户从中间的框中提交数据但是他们已经完成了所有框,但是他们只需要从中间向后的结果。 (如果这是有道理的)

我尝试这样做的方法是将所有框输入添加到对象中,然后使用AJAX选择要从该对象发送的数据位。

我到目前为止的代码是:

var mainContainer = {};

/* Input Timer */

var typingTimer;               //timer identifier
var doneTypingInterval = 500;

$('#width').keyup(function(){
    clearTimeout(typingTimer);
    if ($('#width').val) {
        typingTimer = setTimeout(refresh, doneTypingInterval);
        width = $(this).val();
        mainContainer = {
            width : width
        }
        alert(JSON.stringify(mainContainer));
    }
});

// When Fix Changes start countdown
$('#fixType').change(function() {
    clearTimeout(typingTimer);
    if ($('#fixType').val) {
        typingTimer = setTimeout(refresh, doneTypingInterval);
        fix = $("#fixType option:selected").text();
        mainContainer = {
            fix : fix
        }
        alert(JSON.stringify(mainContainer));
    }
});

到目前为止,我只用了2个盒子来测试它是否有效。但是,当我向主容器添加宽度时它不会将它添加到修复使用的主容器对象。如何获取它以便添加所有输入以便所有.keyups都能看到它?

更新:

如果我输入宽度,宽度会添加到对象中,并会在此处显示警告:http://puu.sh/nY2Mf/194e8f0d1a.png

但是当我继续修复并输入夹具类型时,它不显示我之前添加到对象的宽度:http://puu.sh/nY2RR/fbc840a660.png

2 个答案:

答案 0 :(得分:1)

我看到的第一个问题是您如何尝试“添加”对象mainContainer

当你这样写:

mainContainer = {
    width : width
}

您将mainContainer定义为{width : width }。你不能写

mainContainer = {
        fix : fix
    }

因为它会重写mainContainer。至{ fix : fix }

相反,写一下

mainContainer.width = width;
mainContainer.fix = fix;
然后,

console.log(mainContainer)应返回包含fixwidth属性的对象

mainContainer {
    width: width,
    fix: fix
}

答案 1 :(得分:0)

禁用的输入不会发布,因此您可以禁用当前容器之外的任何输入。

$('input:not(#container input)').attr('disabled','disabled');

因为你没有发布任何HTML。我只是使用了示例选择器。