关于 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 变量显示一种或另一种?

以上是关于 sinatra:onclick 时更改 ERB 文件中 Ruby 变量的值的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>