echo CHtml::ajaxSubmitButton(
'>', $this->createUrl('/shop/category/nextCategory&id=16&store=true&gift_store='.$_GET['gift_store'].'&startValue='.$start_value.'&endValue='.$endValue), array(
'type'=>'GET',
'update'=>'#test',
'beforeSend' => 'function(){
alert("beforeSend");
}',
'complete' => 'function(){
alert("complete");
}',
)
);
在我在控制器中的动作中,我使用reder partial如下,
$this->renderPartial('view',array('model'=>$this->loadModel()),false,true);
因为我已将processOutput设置为true,所以ajax提交按钮工作正常.但它继续执行(我点击的次数).我希望它只在单击提交按钮时执行一次.
如果有人能帮我解决这个问题会很棒.我一直试图解决这个问题.
解决方法:
好吧,我解决了解决方案.发生的事情是,
根据ID触发ajax请求.每次通过ajax重新加载div时,将加载一个新的委托/事件,指向他前面的那个ID.因此,当您实际单击按钮时,两个代表都将完成其工作,因为两者都匹配单击的按钮.
这个问题有两个解决方案.一个是每次生成按钮时都有一个唯一的id,如下所示,
array('id' => 'next-category-'.uniqid());
另一种方式,这就是我解决它的方式,
array("id"=>"next-category", "live"=>false);
live:boolean,是否应该使用live / delegate或direct style附加事件处理程序.如果没有设置,将使用liveEvents.将其提交给提交按钮解决了它.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。