我想使用jquery而不是原型,我在jquery转换这个observe_field时有点迷失。
<%=text_field_tag :section %>
<%= observe_field(:section,
:frequency => 0.1,
:update => "article_list",
:with => 'section',
:url =>{ :action => :get_article_list }) %>
这是我的开始:
$(document).ready(function() {
$("#section").bind("keyup", function() {
var url = '/catalogs/get_article_list';
$.get(url, function(html) {
$("#article_list").html(html);
});
});
});
我读了这个post,但我想我错过了什么。
感谢任何解释。
感谢。
答案 0 :(得分:2)
观察者,观察任何输入元素上的事件,当事件发生时,它使用ajax向给定URL发送请求并在给定元素的页面上更新响应。
在这里你可以很好地观察事件,所以你编写了代码来绑定section元素的keyup事件。
现在,当keyup事件触发时,您需要向服务器发出ajax请求。
$(document).ready(function() {
$("#section").bind("keyup", function() {
data = {this.name: this.val()}; // the value of input that need to send to server
$.get(url, data, // make ajax request
function(html) { // function to handle the response
$("#article_list").html(html); // change the inner html of update div
});
});
});
希望这有助于您理解它。
答案 1 :(得分:0)
这也是一个很好的解决方案:https://github.com/splendeo/jquery.observe_field
答案 2 :(得分:0)
$(function() {
// Executes a callback detecting changes
$("#section"").change(function(){
jQuery.ajax({data:'name=' + this.value, success:function(request){jQuery('#article_list').html(request);}, url:'/catalogs/get_article_list'
})});});