第一次调用ajax后,jquery onchange无法正常工作

时间:2014-05-26 10:35:35

标签: jquery ajax onchange

我尝试从一个帧传递给一个div 在第一次调用ajax jquery后改变不起作用 然后在框架中它正在工作

我在点击菜单时第一次加载我的页面。 我选择了一个人 刷新没问题

但是当我尝试修改XPS后,事件onchange无法正常工作

<script type="text/javascript" src="{$URL_BASE}js/prototype.js"></script>
<script type="text/javascript">var URL_BASE='{$URL_BASE}'</script>
<script type="text/javascript" src="{$URL_BASE}js/jquery.min.js"></script>
<script type="text/javascript" src="{$URL_BASE}page.js"></script>
<script type="text/javascript" src="{$URL_BASE}menu_mj.js"></script>
</head>
<body>
<div id="frame-menu">
 <a href="#" onclick="return menu_displaycentre('frame-centre','{$URL_BASE}page.php');
  ma page
 </a>
</div>
<div id="frame-centre">
</div>

提取页面

    <script type="text/javascript" src="{$URL_BASE}js/prototype.js"></script>
<script type="text/javascript" src="{$URL_BASE}js/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="page.js"></script>
</head>
<body>
<form method="post" id="recherche" name="recherche" action="">
   <input type="hidden" name="ACT" value="rech_perso" />
   RECHERCHE D'UN COMPTE<br />
   Id,Login, email, ip ou nom de personnage : (2 lettres min)<br />
   <input type="text" name="query" size="30" />
   <input type="submit" value="RECHERCHER" onclick="PJ_Recherche()" />
</form>
 <input type="text" size="10" name="XPS" value="{$PJ.XPS}" id="XPS"/>

perso.js

    $.noConflict();
jQuery(document).ready(function($) {
$(document).ready(function () {
$("#XPS").change(function () {
//$('#XPS').live('onchange',function () {
  alert('titi');
   var champsid = ($(this).attr('id'))
   var champsvaleur = $('input[id=XPS]').val()
   var idpj = ($("#idpj").val());
   $.ajax({
   type: "POST",
   url: "updatebdd.php",
   data: 'id='+idpj+'&champ='+champsid+'&value='+ champsvaleur,
   cache: false,
   success: function(html) { // If is everything ok
   }
   });
   });
   });
});
// Code that uses other library's $ can follow here.
function PJ_Recherche() {
   var url=URL_BASE+'persos.php';
   new Ajax.Updater(
      'frame-centre', 
        url,
        {
        method : 'post', 
        parameters: Form.serialize('recherche')
        }
    );
parent.document.getElementById('frame-centre').innerHTML ='Please Wait...';
return false;
}

...

我从3天开始阻止一些人有答案?

1 个答案:

答案 0 :(得分:3)

你必须使用delegated event,因为在DOM加载后修改了元素:

$(document).on('click','#XPS',function () {

................
...............
.............

});