所以我偶然发现了一个令我难过的当前项目的问题,我认为这与我使用$.html()
有关。目前,我使用$.html()
来管理某些字段是否基于下拉选项显示。因此,当下拉列表中的选项发生更改时,我会针对特定字段集调用该函数。
例如,如果' Clerical'被选中$.html(clerical)
运行和
- 返回适当的字段
- 为标准化的2D数据库创建对象文字
- 为显示的每个字段设置适当的索引值。
我遇到的问题是,当我更改字段中的值时,即使我的日志显示正确索引的值已更改,每个索引中的所有对象也会更新为值I刚改变了本文附有一个很好的例子。我将其中一个字段的值更改为xx,当它传递正确的信息时,它会将信息传递给对象的所有区域。
对此的任何帮助都很可爱,现在已经卡住了一段时间!
编辑:以下是一些有问题的功能。第一个是检查要显示的字段集的函数
formCheck: function(formID, id) {
// run counter to get new count. Then add/remove/do nothing.
var formMap = pub.form[formName].objectMap['formMap'];
var counts = {};
for (var area in formMap) {
counts[area] = formMap[area].theCount;
formMap[area].theCount = 0;
}
$('.areaOfResp').each(function() {
formMap[$(this).val()].theCount++;
});
for (var area in formMap) {
var markup = pub.form[formName].templates[area](id);
if (formMap[area].theCount > 0 && counts[area] === 0) {
$('#' + formMap[area].id).html(markup);
} else if (formMap[area].theCount === 0) {
$('#' + formMap[area].id).html('');
}
}
},
第二个函数是字段集之一:
'Sales': function(id) {
var form = pub.form['piq'];
var staticAreas = form.sections.areas.updates['sales area'];
var theStaticArea = new form.objectMap['static areas']('', '', '', 'New', 'New');
var count = 0;
for (var c in staticAreas.data) {
staticAreas.data[count] = theStaticArea;
count++;
}
for (var d = 0; d < 8; d++) {
staticAreas.data[count] = theStaticArea;
count++;
}
//console.log(count);
console.log('Sales mark');
var choiceArr = [
['Inside', 'Inside'],
['Outside', 'Outside']
];
var approvalCalc = count - 3;
var approvalAuthority = frm.field.textArea('approvalAuthority', 'Approval Authority:', 'Please elaborate if approval authority is involved', '', '', '', 'piqr', 'atlas.forms.setValue(\'piq\',\'areas\',\'sales area\',' + approvalCalc + ',\'fieldType\',\'programmingLang\'); atlas.forms.setValue(\'piq\',\'areas\',\'sales area\',' + approvalCalc + ',\'categoryField\',\'Static Field\'); atlas.forms.setValue(\'piq\',\'areas\',\'sales area\',' + approvalCalc + ',\'theValue\',$(this).val());');
var sizeCalc = count - 2;
var portSize = frm.field.input('portSize', 'Size of Portfolio:', '', '', '', 'piqr', 'atlas.forms.setValue(\'piq\',\'areas\',\'sales area\',' + sizeCalc + ',\'fieldType\',\'portSize\'); atlas.forms.setValue(\'piq\',\'areas\',\'sales area\',' + sizeCalc + ',\'categoryField\',\'Static Field\'); atlas.forms.setValue(\'piq\',\'areas\',\'sales area\',' + sizeCalc + ',\'theValue\',$(this).val());');
var mgmtCalc = count - 1;
var portMgmt = frm.field.input('portMgmt', 'Portfolio Management:', '', '', '', 'piqr', 'atlas.forms.setValue(\'piq\',\'areas\',\'sales area\',' + mgmtCalc + ',\'fieldType\',\'portMgmt\'); atlas.forms.setValue(\'piq\',\'areas\',\'sales area\',' + mgmtCalc + ',\'categoryField\',\'Static Field\'); atlas.forms.setValue(\'piq\',\'areas\',\'sales area\',' + mgmtCalc + ',\'theValue\',$(this).val());');
var fld =
'<div class="case-field-sales" id="staticSales">' +
approvalAuthority +
portSize +
portMgmt +
'</div>';
return fld;
},