关于 sinatra:onclick 时更改 ERB 文件中 Ruby 变量的值
Change value of Ruby variable in ERB file upon onclick
当用户单击一些文本时,我想在我的 .erb 文件中更改 Ruby 本地参数的值。 (我将 Ruby 与 Sinatra 一起使用,而不是 Rails)。代码如下所示:
|
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<!-- Get ERB to work here -->
<p>No account?">Register here</p> <!-- Should change new_user to true if clicked --> <form method="POST" action="/nanotwitter/v1.0/users/session"> <input type="text" name="username" placeholder="Username"> <input type="password" name="password" placeholder="Password"> <% if new_user %> <input type="password" name="password2" placeholder="Repeat password"> <% end %> <button type="button">Close</button> <button type="submit"> <% if new_user %> Register <% else %> Log In <% end %> </button> </form> |
显然,onlick 属性中的 Ruby 代码会立即计算,我希望它仅在用户单击时执行。我已经搜索了这个网站和互联网,但我仍然不确定正确/标准的实现是什么。
首先,ruby 不与用户事件交互。 Javascript可以。
其次,什么是 new_user ?简单变量?您想用它来交换表格以进行注册\\\\ 登录?或者您希望用户真正通过这种方法注册?
如果情况是根据用户的选择向用户显示登录\\\\ 注册表单(新的\\
已注册),您应该只使用 javascript.
一般来说,你应该为两种不同的形式准备标记(注册\\\\登录)并根据一些javascript变量隐藏它们,用户可以选择。
相关讨论
- 所以你是说应该用Javascript分配/更改变量,对吧? (是的,new_user 是一个简单的变量。)所以两种不同形式的标记非常相似——我想我可以使用 erb 逻辑来减少重复。你说这是不正确的,我应该重复这两种形式,只根据 JS 变量显示一种或另一种?
THE END
二维码