0

我有一个具有 3 个属性字段(Field1, Field2, Field3)的可配置产品我需要第二个(Field1哪个 id 是attribute134)有一个按钮收音机,有两个选择,如下所示:

<input type="radio" name="revision" id="revision1" value="base" disabled>
<input type="radio" name="revision" id="revision2" value="complete" disabled>

实际上,无法将单选按钮与 magento 一起使用,因此我决定将我自己的字段单选按钮同步到Field2id 为attribute135 => 第一个属性中的选择Field1仅在Field2.

所以我做了以下同步:

jQuery("#revision1").click(function(){jQuery('#attribute135').val(jQuery('#attribute135 option:eq(1)').val());});
jQuery("#revision2").click(function(){jQuery('#attribute135').val(jQuery('#attribute135 option:eq(2)').val());});
jQuery("#attribute134").change(function(){jQuery("#revision1").prop('checked', false);jQuery("#revision2").prop('checked', false);jQuery("#revision1").prop("disabled",false);jQuery("#revision2").prop("disabled",false)});

但是由于标准行为,我有错误。=> 价格未更新,字段 3 未激活并预填充了良好的值...实际上,我的同步似乎是一种自动操作,不会重现通过更改字段 2 中的值手动生成的行为.

你知道如何解决这个问题吗?为了手动重现完全相同的行为,好的 jQuery 事件是什么?

提前致谢。

4

2 回答 2

1

最后,我改变了在 varien 可配置的 js 中监听的事件,如下所示:

 Event.observe(element, 'change', this.configure.bind(this))
by
 Event.observe(element, 'click', this.configure.bind(this))

我使用了你的函数 trigger() 如下:

    jQuery("#revision1").click(function(){
    jQuery('#attribute135').val(jQuery('#attribute135 option:eq(1)').val());
    jQuery('#attribute135').trigger('click');
});
jQuery("#revision2").click(function(){
    jQuery('#attribute135').val(jQuery('#attribute135 option:eq(2)').val());
    jQuery('#attribute135').trigger('click');
});

=> 我不知道为什么,它没有与change事件一起工作,但它正在与click事件一起工作。

于 2013-07-10T09:59:49.833 回答
0

我在这里有点迷路,但我认为 jQuerytrigger()应该有所帮助。尝试

jQuery("#revision1").click(function(){
    jQuery('#attribute135').val(jQuery('#attribute135 option:eq(1)').val());
    jQuery('#attribute135').trigger('change');
});
jQuery("#revision2").click(function(){
    jQuery('#attribute135').val(jQuery('#attribute135 option:eq(2)').val());
    jQuery('#attribute135').trigger('change');
});
于 2013-07-09T20:26:12.653 回答