Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在更改文本字段时重新呈现javascript?_Javascript_Ruby On Rails_Ruby_Render_Partial - Fatal编程技术网

如何在更改文本字段时重新呈现javascript?

如何在更改文本字段时重新呈现javascript?,javascript,ruby-on-rails,ruby,render,partial,Javascript,Ruby On Rails,Ruby,Render,Partial,我不是计算机科学家,而是机械工程师。因此,如果我没有用正确的词语来描述事情,我会提前道歉。我会尽力澄清的 我在Rails网站上工作,该网站显示客户太阳能逆变器的功率输出。在绘制电源输出的页面上(使用javascript),我希望该页面上的javascript(使用嵌入式ruby)在更改文本字段(其中包含日期)时重新呈现。当客户希望查看不同日期的电源输出数据时,此页面的javascript将相应地重新呈现 我最初尝试在控制器操作中使用render:update和page.replace_html,

我不是计算机科学家,而是机械工程师。因此,如果我没有用正确的词语来描述事情,我会提前道歉。我会尽力澄清的

我在Rails网站上工作,该网站显示客户太阳能逆变器的功率输出。在绘制电源输出的页面上(使用javascript),我希望该页面上的javascript(使用嵌入式ruby)在更改文本字段(其中包含日期)时重新呈现。当客户希望查看不同日期的电源输出数据时,此页面的javascript将相应地重新呈现

我最初尝试在控制器操作中使用
render:update
page.replace_html
,该操作将在文本字段更改时调用,但经过进一步研究发现,这不被视为良好做法?而且更重要的是,我无法让它工作(我很惭愧。非常感谢那些试图帮助我的响应者!)

我观看了Railscast#136,并试图根据我的需要调整这些信息

页面为
poweroutput.html.erb
。我所有的javascript都在主html文件的脚本标记中。
poweroutput.html.erb
上文本字段元素的html如下所示(它不起作用):

“日期字段”,
:class=>dateformat-d-dt-m-dt-Y',
:onchange=>remote\u函数(
:url=>{:controller=>'pages',:action=>'poweroutput'})
})
%>
因此,我认为上面的方法基本上只是在文本字段发生更改时刷新/重新呈现页面,但什么也没有发生


请帮我把头发扯下来。我认为我的部分问题一定是我不理解
remote\u函数
方法调用的底层Ajax函数在做什么。如果您能对此有所了解,或者建议使用完全不同的方法在文本字段发生更改时重新呈现javascript,我将不胜感激

我认为这里有两件事可能是错误的:

1) 在AJAX调用结果呈现给div时,使用div包装部分内容:

<script type="text/javascript">
   <div id="poweroutputscript_partial">
     <%= render 'javascripts/poweroutputscript.html.erb' %>
   </div>
</script>

我认为这里有两件事可能是错误的:

1) 在AJAX调用结果呈现给div时,使用div包装部分内容:

<script type="text/javascript">
   <div id="poweroutputscript_partial">
     <%= render 'javascripts/poweroutputscript.html.erb' %>
   </div>
</script>

首先,我将使用firebug或类似工具来检查文本字段更改时是否发送了请求。接下来,我将查看响应是什么。如果是500错误,请检查应用程序日志中的堆栈跟踪

我猜响应将是500错误,可能是因为update_poweroutput函数试图呈现不存在的部分,我认为您需要指定

:partial => 'javascripts/poweroutputscript.html.erb'

当然,除非您呈现的是pages view文件夹中确实存在的不同部分。在这种情况下,您是否在控制器中设置了所有必要的变量?

首先,我将使用firebug或类似工具来检查文本字段更改时是否发送了请求。接下来,我将查看响应是什么。如果是500错误,请检查应用程序日志中的堆栈跟踪

我猜响应将是500错误,可能是因为update_poweroutput函数试图呈现不存在的部分,我认为您需要指定

:partial => 'javascripts/poweroutputscript.html.erb'
当然,除非您呈现的是pages view文件夹中确实存在的不同部分。在这种情况下,您是否在控制器中设置了所有必要的变量