使用Magento 1.9 ->addFieldDependence
方法,我的相關字段值會動態變化,因此不會觸發magento字段相關方法。當數值動態改變時,表格字段相關性未觸發Magento 1.9
我試着jquery $j("#meter_type_code").trigger("change");
強制onchange事件並觸發Magento依賴函數無濟於事。
我的代碼相關摘錄:
<script>
var metertype = <?php echo $meter_type; ?>; //$metertype is an array
</script>
$fieldset->addField('meter_type_code', 'text', array(//set to text for testing will be hidden
'name' => 'machine.meter_type_code',
$fieldset->addField('meter_type', 'select', array(
'label' => 'Meter Type',
'class' => 'required-entry',
'required' => true,
'name' => 'machine.meter_type',
'onchange' => 'changeFieldValue(metertype[this.value]);trigger();',
'values' => Mage::getModel('machinemanager/machine_metertype')->getMeterTypes($attributeSetName),
'disabled' => false,
'readonly' => false,
'after_element_html' => '</br><small>Time in service</small>',
'tabindex' => 1
))
->setAfterElementHtml('
<script>
function changeFieldValue(value) {
document.getElementById("meter_type_code").value = value;
}
function trigger(value) {
//this is where I tried various methods to trigger the event none of which had effect to fire the Magento field dependence
}
</script>
');
$this->setChild('form_after', $this->getLayout()
->createBlock('adminhtml/widget_form_element_dependence')
->addFieldMap('meter_type_code','meter_type_code')
->addFieldMap('meter_type','meter_type')
->addFieldMap('time', 'time')
->addFieldMap('time_adjust', 'time_adjust')
->addFieldMap('cycles', 'cycles')
->addFieldMap('cycles_adjust', 'cycles_adjust')
->addFieldDependence('time', 'meter_type_code', array('t','tc'))
->addFieldDependence('time_adjust', 'meter_type_code', array('t','tc'))
->addFieldDependence('cycles', 'meter_type_code', array('c','tc'))
->addFieldDependence('cycles_adjust', 'meter_type_code', array('c','tc'))
);
當我成功地強制使用jQuery onchange事件,沒有發生任何事情,直到我真正重新輸入meter_type_code的價值,造成一個真正的鍵盤動作。這觸發了magento javascript使依賴字段出現並完美消失。
任何人都可以告訴我如何導致addFieldDependence觸發何時目標字段的依賴關係是從另一個字段動態更新?
謝謝。