我有一个带有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
答案 0 :(得分:1)
我看到的第一个问题是您如何尝试“添加”对象mainContainer
当你这样写:
mainContainer = {
width : width
}
您将mainContainer
定义为{width : width }
。你不能写
mainContainer = {
fix : fix
}
因为它会重写mainContainer
。至仅为{ fix : fix }
相反,写一下
mainContainer.width = width;
mainContainer.fix = fix;
然后, console.log(mainContainer)
应返回包含fix
和width
属性的对象
mainContainer {
width: width,
fix: fix
}
答案 1 :(得分:0)
禁用的输入不会发布,因此您可以禁用当前容器之外的任何输入。
$('input:not(#container input)').attr('disabled','disabled');
因为你没有发布任何HTML。我只是使用了示例选择器。