2011-08-30 86 views
0

我正在使用一个模块并将格式设置从其他页面复制过来,但似乎不起作用。是为了从House Location中获得价值,并在下面的框中创建页面slu g。 Form类是粗糙的,我无法在Firebug中得到任何错误。Javascript ajax填充问题

控制器功能:

function stream_slug() 
{ 
    $this->load->helper('text'); 

    $this->output->set_output(url_title($this->input->post('location'), 'underscore', TRUE)); 
} 

HTML:

<label for="location">House Location:</label> <input type="text" name="location" value="" maxlength="250" /><span class="required-icon tooltip">Required</span></li> 

<li class="even"> 
<label for="slug">House Slug</label> 
<input type="text" name="slug" value="" maxlength="60" /><span class="required-icon tooltip">Required</span> 
</li> 

的jQuery:

(function($) { 
    $(function(){ 

     form = $('form.crud'); 

     $('input[name="location"]', form).keyup($.debounce(300, function(){ 

      slug = $('input[name="slug"]', form); 

      $.post(BASE_URI + 'index.php/admin/sales/stream_slug', { title : $(this).val() }, function(new_slug){ 
       slug.val(new_slug); 
      }); 
     })); 

    }); 
})(jQuery); 

更新的jQuery:

(function($) { 
    $(function(){ 

     form = $('form.crud'); 

     form.find('input[name="location"]', form).keyup($.debounce(function(){ 

      slug = $('input[name="slug"]', form); 

      $.ajax(BASE_URI + 'index.php/admin/sales/stream_slug', { title : $(this).val() }, function(new_slug){ 
       slug.val(new_slug); 
      }); 
     }, 300)); 

    }); 
})(jQuery); 

防抖动:

/* 
* jQuery throttle/debounce - v1.1 - 3/7/2010 
* http://benalman.com/projects/jquery-throttle-debounce-plugin/ 
* 
* Copyright (c) 2010 "Cowboy" Ben Alman 
* Dual licensed under the MIT and GPL licenses. 
* http://benalman.com/about/license/ 
*/ 
(function(b,c){var $=b.jQuery||b.Cowboy||(b.Cowboy={}),a;$.throttle=a=function(e,f,j,i){var h,d=0;if(typeof f!=="boolean"){i=j;j=f;f=c}function g(){var o=this,m=+new Date()-d,n=arguments;function l(){d=+new Date();j.apply(o,n)}function k(){h=c}if(i&&!h){l()}h&&clearTimeout(h);if(i===c&&m>e){l()}else{if(f!==true){h=setTimeout(i?k:l,i===c?e-m:e)}}}if($.guid){g.guid=j.guid=j.guid||$.guid++}return g};$.debounce=function(d,e,f){return f===c?a(d,e,false):a(d,f,e!==false)}})(this); 
+0

查看本示例,它使用jsfiddle的HTML回传来模拟AJAX交互:http://jsfiddle.net/ambiguous/EgrJF/ –

+0

是否禁用/删除dbounce文件?我仍然得到这个错误,我已经尝试完整的文件 –

+0

比较你在做什么和jsfiddle.net示例(哪些工作)。 –

回答

1

我的第一个猜测是,你有论据$.debounce向后:

$.debounce(fn, timeout, [invokeAsap], [ctx]); 

尝试使用:

$('input[name="location"]', form).keyup($.debounce(function() { 
    //... 
}, 300)); 

我也建议您切换从

$('input[name="location"]', form) 

from.find('input[name="location"]') 

使得form没有得到视觉上失去了右侧,但是这仅仅是一个风格问题,主题到个人偏好(不同于外部API的参数顺序)。

+0

仍然不工作奇怪 –

+0

@Jess:控制台中的任何错误? PHP被调用了吗?服务器日志上的任何错误?你也有一个'

'HTML,对吧? –

+0

两者都没有错误,是表单类是crud –