我在rhomobile中创建了一个简单的项目。我的主屏幕上有一个文本框和一个按钮。
这是index.erb
<div data-role="content">
<br /><br />
Email Address : <input type="text" name="Email" /><br />
<form method="POST" action="<%= url_for(:action =>:show_VibLoc) %>">
<input type="submit" value="Submit" />
</form>
现在我已经在app文件夹下的settings文件夹中创建了一个新文件VibLoc.erb
。
在VibLoc.erb
我只显示两个按钮。
在设置文件夹下的controller.rb
文件中,我创建了一个函数show_VibLoc
这个函数呈现VibLoc.erb
文件
def show_VibLoc
render :action => :VibLoc
end
代码编译成功,但当我点击该按钮时,我看不到我的VibLoc
视图。
我做错了什么??
曾经遇到过同样的问题,我找到的方法是:
-
在项目的公共/js文件夹中创建一个.js文件,其中包含一个从控制器调用方法的函数:
function ajaxBridge(method,funcName,onSuccess) { $.ajax({ type: method, url: funcName, async: true, error: function(xhr){alert("Custom Uncaught AjaxBridge Error 11 :" + "<br/>" + xhr.responseText);}, success: onSuccess }); }
-
在你的。erb文件或视图中:
<input type="button" value="Login" onclick="doValidation()"/>
-
创建一个脚本在同一页面上调用我们的ajax方法,我也发送登录信息的方法:
<script type="text/javascript"> function doValidation(){ var login = $('input#login').val(); var password = $('input#password').val(); ajaxBridge("POST","<%= url_for :controller => :Survey, :action => :do_login %>"+"?login="+login +"&password="+password,function(){}); } </script>
注意:一定要包括<script type="text/javascript" src="/public/js/AjaxConnector.js"></script>
指定ajax的源。
希望我帮到你。
最后我自己解决了。
不用在index.erb
<div data-role="content">
<br /><br />
Email Address : <input type="text" name="Email" /><br />
<form method="POST" action="<%= url_for(:action =>:show_VibLoc) %>">
<input type="submit" value="Submit" />
</form>
用这个代替
<div data-role="content">
<br /><br />
<div data-role="fieldcontain">
Email Address : <input type="text" name="Email" /><br />
</div>
<form method="POST" action="<%= url_for(:controller => :Settings, :action =>:show_VibLoc) %>">
<input type="submit" value="Submit" />
</form>
谢谢你看这个问题:)