ここで立ち往生した 助けが必要 Ruby on rails ログイン用のポップアップが1つあります jqueryを使用して「サインイン」リンクをクリックすると表示されます データベースからユーザーが入力したユーザー名とパスワードを検証したい ログインポップアップは部分的なページサインですin.html.erb 任意のソリューション。お願いします
1396 次
2 に答える
0
使用している検証フレームワークによって異なります。
重要なのは、サーバーが応答したらダイアログを閉じないようにすることです。
(非推奨) JavaScript 検証フレームワークを使用していない場合は、「フォーム」を「リモート フォーム」にして送信し、検証が失敗した場合はエラー メッセージを表示する必要があります。
(私の経験)RSV(本当に単純な検証)などのJavaScript検証フレームワークを使用している場合は、検証ルールを定義するだけで、2つのajaxメソッドを実装します。1つはフォームの検証に使用され、もう1つはフォームの処理に使用されるコールバック関数ですリモートからの応答を取得し、ダイアログに表示します。
とにかく、ダイアログのエラー メッセージの処理は、通常のページのエラー メッセージの処理よりも簡単ではありません。とにかく、あなたが私の考えを理解してくれることを願っています。
于 2012-04-19T06:30:18.817 に答える
0
これは、レンダリングして検証したログイン部分です。
<div class="clost_holder"> <%= link_to image_tag("/assets/close-new.png"), "javascript:;", :onclick => "close_popup()" %>
</div>
<%= form_for(@user, :as => @user, :url => session_path(@user), :html => {:id => 'sign_in_form', :onsubmit => "return false;"}) do |f| %>
<div class="login_input_holder mtop20 flt">
<label>Email</label>
<p><%= link_to 'dont have an account ?', :controller => 'devise/registrations', :action => 'new' %></p>
<%= f.email_field :email %>
</div>
<div class="login_input_holder mtop10 flt">
<label>Password</label>
<%= f.password_field :password %>
</div>
<div class="fogot_password "><%= link_to 'forgot password ?', :controller => 'devise/passwords', :action => 'new' %></div>
<div class="login_btn frt"><input type="submit" value="signin" id='sign_in_btn'></div>
<% end %>
そしてそれを検証します。ただし、jquery.validate および jquery.form ファイルも追加する必要があります。
<script type="text/javascript">
$("#sign_in_btn").click(function() {
if (!jQuery("#sign_in_form").valid()) {
return false;
}
else {
var container = $("#home1_content");
$("#sign_in_form").submit(function() {
$(this).unbind('submit').ajaxSubmit({
success: function(data) {
container.html(data);
window.location.reload();
}
})
});
}
});
$(document).ready(function() {
$("#sign_in_form").validate({
rules:{
"user[email]":
{
required: true ,
email: true
},
"user[password]":
{
required: true
},
messages: {
"user[email]": "This field is required",
"user[password]": "This field is required"
}
}
});
});
</script>
于 2012-04-19T06:42:32.043 に答える