Тоже столкнулся с этой проблемой.
Перенес копонент формы из шаблона детальной страницы в element.php в скрытый див и написал там jquery код перемещения формы в шаблон:
Код |
---|
<div style="display:none;">
<div id="comments-form-start">
<? $APPLICATION->IncludeComponent(
"bitrix:form.result.new",
"add-tovar-comment",
array(
"AJAX_MODE" => "Y",
"AJAX_OPTION_HISTORY" => "N",
"AJAX_OPTION_JUMP" => "N",
"AJAX_OPTION_SHADOW" => "N",
"AJAX_OPTION_STYLE" => "N",
"AJAX_OPTION_ADDITIONAL" => "tovar-comment",
"CACHE_TIME" => "3600",
"CACHE_TYPE" => "N",
"CHAIN_ITEM_LINK" => "",
"CHAIN_ITEM_TEXT" => "",
"COMPOSITE_FRAME_MODE" => "A",
"COMPOSITE_FRAME_TYPE" => "AUTO",
"EDIT_URL" => "",
"IGNORE_CUSTOM_TEMPLATE" => "Y",
"LIST_URL" => "",
"SEF_MODE" => "N",
"SUCCESS_URL" => "",
"USE_EXTENDED_ERRORS" => "Y",
"WEB_FORM_ID" => "33",
"COMPONENT_TEMPLATE" => "add-tovar-comment",
"ID_TOVAR" => "84573",
"VARIABLE_ALIASES" => array(
"WEB_FORM_ID" => "WEB_FORM_ID",
"RESULT_ID" => "RESULT_ID",
)
),
$component,
array("HIDE_ICONS" => "Y")
);?>
</div>
</div>
<sc ript>
$(function(){
var strt = $('#comments-form-start');
var intobox = $('#comments-form');
if(intobox.length && strt.length){
strt.appendTo(intobox);
}
});
</sc ript>
|
В шаблоне детальной странице вместо формы разместил див
Код |
---|
<div id="comments-form"></div>
|
Все работает в режиме ajax и с включеным кешем каталога.