Rails:在form_for单选按钮上调用JS函数
Rails: Calling JS function on form_for radio buttons
我有一个单选按钮的form_for,当单选按钮被改变时,我想调用一个javascript函数。
单选按钮用于Chapter的字段type,类型为boolean。
<%= form_for([book.category, book, chapter], remote: true ) do |f| %>
<%= f.radio_button :type, true, onKeyUp: "alert('hi')", checked: 'checked' %>
<%= f.label :type, 'Link' %>
<%= f.radio_button :type, false, onKeyUp: "alert('hi')" %>
<%= f.label :type, 'Text' %>
<% end %>
我也试过onchange和onclick。我试着在选项之前添加{},我从Rails得到一个错误,有太多的参数。
最后我想调用一个隐藏/显示其他文本字段的函数,但我甚至不能得到警报执行!
我确信这是非常简单的事情,但是我已经在互联网上搜索这个问题的答案太久了。谢谢你的帮助!
这段代码实际上与onclick事件一起工作,在浏览器中使用开发人员扩展(如Firebug)检查生成的HTML代码,以确保属性设置正确。
<%= form_for([book.category, book, chapter], remote: true ) do |f| %>
<%= f.radio_button :type, true, checked: 'checked', onClick: "alert('hi TRUE!');" %>
<%= f.label :type, 'Link' %>
<%= f.radio_button :type, false, onClick: "alert('hi False!');" %>
<%= f.label :type, 'Text' %>
<% end %>
另一种方法是使用data标签定义行为,然后将其与javascript绑定(参考:http://blog.bigbinary.com/2012/10/10/data-behavior.html):
)<%= form_for([book.category, book, chapter], remote: true ) do |f| %>
<%= f.radio_button :type, true, checked: 'checked', data: {behavior: "clickable"} %>
<%= f.label :type, 'Link' %>
<%= f.radio_button :type, false, data: {behavior: "clickable" } %>
<%= f.label :type, 'Text' %>
<% end %>
JavaScript: $(document).ready(function() {
$('input[type="radio"][data-behavior="clickable"]').click(function(evt) {
alert("you chose the option: " + $(this).val());
});
});
让我们将其扩展到隐藏/显示其他内容的场景:
视图ERB:
<%= form_for([book.category, book, chapter], remote: true ) do |f| %>
<%= f.radio_button :type, true, checked: 'checked', data: {behavior: "toggle-products"} %>
<%= f.label :type, 'Link' %>
<%= f.radio_button :type, false, data: {behavior: "toggle-products" } %>
<%= f.label :type, 'Text' %>
<% end %>
JavaScript: $(document).ready(function() {
$('input[type="radio"][data-behavior="toggle-products"]').click(function(evt) {
if($(this).val() == "true") {
$('.products').show();
} else {
$('.products').hide();
}
});
});
相关文章:
- 如何从Java/scala调用js美化程序
- 是否可以在使用headerphp函数后自动调用JS函数
- 全局窗口热键在最小化chrome窗口时调用js函数
- 当用户点击动态创建的链接时,如何调用JS方法.JQuery,ASP.NET MVC
- 从PHP调用JS函数不起作用
- 如何从构造函数中调用js原型方法
- 从加载的页面调用js页面
- 在shtml中调用js函数
- 当调用JS函数具有alert()时,应用程序将被冻结
- 无法从onclick事件调用JS函数
- 如何在自动完成更新时调用JS函数
- 在单击浏览器选项卡上调用 js 函数
- 从 PHP 文件调用 js 函数
- 尝试在 PHP 代码中调用 js 函数
- 同时调用js函数yui
- 提交按钮的点击元素不调用JS函数
- 使用onclick和javascript函数,在参数中调用js-var
- 在另一个.js文件中调用js函数
- 使用grunt在angular指令中调用js文件
- 在JS文件中设置延迟以调用JS文件