使用$ .html(someFunction)使我的设置索引更改事件表现得很奇怪

时间:2017-05-02 03:35:29

标签: javascript jquery html

所以我偶然发现了一个令我难过的当前项目的问题,我认为这与我使用$.html()有关。目前,我使用$.html()来管理某些字段是否基于下拉选项显示。因此,当下拉列表中的选项发生更改时,我会针对特定字段集调用该函数。

例如,如果' Clerical'被选中$.html(clerical)运行和 - 返回适当的字段 - 为标准化的2D数据库创建对象文字 - 为显示的每个字段设置适当的索引值。

我遇到的问题是,当我更改字段中的值时,即使我的日志显示正确索引的值已更改,每个索引中的所有对象也会更新为值I刚改变了本文附有一个很好的例子。我将其中一个字段的值更改为xx,当它传递正确的信息时,它会将信息传递给对象的所有区域。

对此的任何帮助都很可爱,现在已经卡住了一段时间!

Example field update

编辑:以下是一些有问题的功能。第一个是检查要显示的字段集的函数

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;
},

0 个答案:

没有答案