我正在尝试创建单页CRUD。 现在,我在show函数中遇到了一些错误。
可在此处找到该应用程序的示例: http://tryoutcreation.herokuapp.com/
似乎工作正常。 创建后,如果页面未刷新,则show函数可以正常工作。
但是,如果刷新,对话框将停止作为对话框工作,只显示为div。
您可以通过创建用户并单击show功能来尝试。然后尝试刷新页面,同样的div将只显示在页面上而不是作为对话框。
可在此处找到来源: https://github.com/frozzie/ModalCrud
相关代码:
对话框是show-form。
<tr id = "<%= dom_id user%>">
<td><%= user.user_name %></td>
<td><%= user.email %></td>
<td><%= user.password %></td>
<td><%= user.account_type %></td>
<td><%= link_to 'Show', user, :remote=>true%></td>
<td><%= link_to 'Edit', edit_user_path(user), :remote => true %></td>
<td><%= link_to 'Destroy', user, :remote => true, method: :delete, data: { confirm: 'Are you sure?' } %>
</td>
<div id = "show-form" title="User Information">
<p>
<b>User name:</b>
<%= user.user_name %>
</p>
<p>
<b>Email:</b>
<%= user.email %>
</p>
<p>
<b>Password:</b>
<%= user.password %>
</p>
<p>
<b>Account type:</b>
<%= user.account_type %>
</p>
</div>
</tr>
只有在单击“显示”按钮时才能打开它。 $(“#show-form”)。dialog(“open”);
这是对话框。
$( "#show-form" ).dialog({
autoOpen: false,
height: 400,
width: 350,
modal: true,
closeOnEscape: true,
resizable:false,
buttons: {
Cancel: function() {
$( this ).dialog( "close" );
}
}
})
任何关于它为什么会发生的想法都会受到赞赏。
答案 0 :(得分:2)
这与你的js关系不如你的php。
从您的代码中删除它:
<div id = "show-form" title="User Information">
<p>
<b>User name:</b>
<%= user.user_name %>
</p>
<p>
<b>Email:</b>
<%= user.email %>
</p>
<p>
<b>Password:</b>
<%= user.password %>
</p>
<p>
<b>Account type:</b>
<%= user.account_type %>
</p>
</div>
然后查看正确输出用户信息。不要只在页面顶部输出。
<tr id = "<%= dom_id user%>">
<td><%= user.user_name %></td>
<td><%= user.email %></td>
<td><%= user.password %></td>
<td><%= user.account_type %></td>
<td class="click_me" data-id="<%= dom_id user%>"><%= link_to 'Show', user, :remote=>true%></td>
<td><%= link_to 'Edit', edit_user_path(user), :remote => true %></td>
<td><%= link_to 'Destroy', user, :remote => true, method: :delete, data: { confirm: 'Are you sure?' } %>
</td>
</tr>
<tr style="display: none;" class="hidden_<%= dom_id user%>">
<td colspan="8">
<div class = "show-form" title="User Information">
<p>
<b>User name:</b>
<%= user.user_name %>
</p>
<p>
<b>Email:</b>
<%= user.email %>
</p>
<p>
<b>Password:</b>
<%= user.password %>
</p>
<p>
<b>Account type:</b>
<%= user.account_type %>
</p>
</div>
</td>
</tr>
<强> JS 强>
现在,
$('td').on('click','.click_me', function(){
var id = $(this).data('id');
$('.hidden_'+id).slideToggle();
});
这不完美......大声笑,但至少你可以随心所欲地工作。