微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Drupal 7 ajax_command_ *创建了不需要的div

我正在使用Drupal 7中的 AJAX回调填充选择框.我已经尝试了ajax_command_append()和ajax_command_html()来设置新的<选项...>语句,但这两个包装我在< div>内创建的 HTML.这导致< select>不显示任何选项.

有没有办法告诉Drupal“嘿笨,这正是我想要的HTML,不要乱用它”?

我可以编写一些jQuery来删除我想的div,但如果我可以防止它被添加到第一位的话会好很多.

解决方法

是的你可以!

声明自己的自定义js回调.在下面的例子中,我使用了span而不是div.但你显然可以完全删除包装器.

PHP

function my_ajax_callback() {
  $data = 'saved!';
  // instead of using ajax_command_html,we provide our own 
  // js custom callback function
  $output = array(
    '#type' => 'ajax','#commands' => array(
      array('command' => 'myjscallback','data' => $data),),);

  return $output; 
}

JS:

$(function() {
  Drupal.ajax.prototype.commands.myjscallback = function (ajax,response,status) {
    $('#save-btn-message').html('<span>' + response.data + '</span>');
  };
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐