prototypeJS DOM和AJAX交互

时间:2013-05-24 14:44:14

标签: javascript dom prototypejs

我有一个概念性的DOM问题 - 我希望它有意义。

我的页面(称之为'Main')上有原型JS AJAX更新程序,我正在选择要编辑的记录,并将“页面B”(部分)调用到“主页”页面上的div中。

当我点击部分中的表单时,它调用'Main'上的函数 - 但是Updater是“Supposed To”更新部分的div ...但它永远不会。我很确定DOM无法找到它,因为它被渲染或带入Main ...

我该如何解决这个问题?

主要

<script>
// pulls page B into Main div
function getItem( id ) {
    var url = 'itemDetails.php'; 
    var pars = { id:id };
    var myAjaxOpts = new Ajax.Updater( 'itemDetail', url, {
            method:'post'
            ,parameters:pars
            ,evalScripts:true
        });
}

// post form and expects messages in 2 places (1) the upated div (on page B) and the message div on Main
// Only main showing up
function assignItem( frm ) {
    var url = 'assignItem.php'; 
    var pars = Form.serialize( frm );
    var myAjaxOpts = new Ajax.Updater( 'subMessage', url, {
            method:'post'
            ,parameters:pars
            ,evalScripts:true
            ,onSuccess: function( response ){
                //console.log( 'request ready to be made' );
                $( 'mainMessage' ).update( response );
            }
        });
}
</script>   

<!-- page A - Main -->
<div id="mainMessage"></div>
<ul>
    <li><a onClick="getItem( 1 );">item 1</a></li>
    <li><a onClick="getItem( 2 );">item 2</a></li>
    <li><a onClick="getItem( 3 );">item 3</a></li>
</ul>
<div id="itemDetail"></div>
<!-- end page A -->

第B页(部分)

<!-- page B - Partial -->
<div id="subMessage"></div>
<form>
    -- edit record ---
<input type="button" onClick="assignItem( this.form );" ></form>
<!-- end page B -->
顺便说一下 - 应该注意的是,这是一个“减少”的样本(并且可能有拼写错误),我正在按预期获得数据,AJAX没有问题,它只是div中的部分似乎没有主要功能可用。

THX

1 个答案:

答案 0 :(得分:0)

只需更改您要更新的ID。

更改此内容:$( 'mainMessage' ).update( response );

by:$( 'subMessage' ).update( response );