单击时更改 ERB 文件中 Ruby 变量的值
Change value of Ruby variable in ERB file upon onclick
我想在用户单击一段文本时更改我的 .erb 文件中 Ruby 局部参数的值。 (我在 Sinatra 中使用 Ruby,而不是 Rails)。代码如下所示:
<div class="modal-body">
<!-- Get ERB to work here -->
<p><i>No account? <a href="#" onlick="<% new_user = !new_user %>">Register here</a></i></p> <!-- Should change new_user to true if clicked -->
<form class="input-group" style="margin: 0 auto" method="POST" action="/nanotwitter/v1.0/users/session">
<input class="form-control" type="text" name="username" placeholder="Username">
<br><br>
<input class="form-control" type="password" name="password" placeholder="Password">
<% if new_user %>
<br><br>
<input class="form-control" type="password" name="password2" placeholder="Repeat password">
<% end %>
<br><br>
<div class="input-group" style="margin: 0 auto">
<button type="button" class="btn btn-default form-control" style="width: 50%" data-dismiss="modal">Close</button>
<button class="btn btn-primary form-control" style="width: 50%" type="submit">
<% if new_user %>
Register
<% else %>
Log In
<% end %>
</button>
</div>
</form>
</div>
很明显,onlick 属性中的 Ruby 代码会立即求值,我希望它仅在用户单击时执行。我搜索了这个网站和互联网,但我仍然不确定 correct/standard 的实现方式是什么。
首先,ruby不要与用户事件交互。 Javascript 确实如此。
其次,什么是 new_user
?简单变量?您想用它来交换注册\登录的表格吗?或者你想让用户真正通过这种方式注册?
如果情况是根据用户的选择 (new\registered) 向用户显示登录\注册表单,您应该只使用 javascript。
一般来说,你应该为两种不同的形式(register\login)准备标记,并根据一些javascript变量隐藏它们,用户可以选择。
我想在用户单击一段文本时更改我的 .erb 文件中 Ruby 局部参数的值。 (我在 Sinatra 中使用 Ruby,而不是 Rails)。代码如下所示:
<div class="modal-body">
<!-- Get ERB to work here -->
<p><i>No account? <a href="#" onlick="<% new_user = !new_user %>">Register here</a></i></p> <!-- Should change new_user to true if clicked -->
<form class="input-group" style="margin: 0 auto" method="POST" action="/nanotwitter/v1.0/users/session">
<input class="form-control" type="text" name="username" placeholder="Username">
<br><br>
<input class="form-control" type="password" name="password" placeholder="Password">
<% if new_user %>
<br><br>
<input class="form-control" type="password" name="password2" placeholder="Repeat password">
<% end %>
<br><br>
<div class="input-group" style="margin: 0 auto">
<button type="button" class="btn btn-default form-control" style="width: 50%" data-dismiss="modal">Close</button>
<button class="btn btn-primary form-control" style="width: 50%" type="submit">
<% if new_user %>
Register
<% else %>
Log In
<% end %>
</button>
</div>
</form>
</div>
很明显,onlick 属性中的 Ruby 代码会立即求值,我希望它仅在用户单击时执行。我搜索了这个网站和互联网,但我仍然不确定 correct/standard 的实现方式是什么。
首先,ruby不要与用户事件交互。 Javascript 确实如此。
其次,什么是 new_user
?简单变量?您想用它来交换注册\登录的表格吗?或者你想让用户真正通过这种方式注册?
如果情况是根据用户的选择 (new\registered) 向用户显示登录\注册表单,您应该只使用 javascript。
一般来说,你应该为两种不同的形式(register\login)准备标记,并根据一些javascript变量隐藏它们,用户可以选择。