我有一个带JS验证的注册表单。当注册表单直接在html中时,它工作正常。但是,当通过partial访问注册表单时,它无法从表单中读取变量。在这种情况下,表单始终显示错误“请输入您的姓名”。
JS:
$('.js-sign-up-submit').click(function(event) {
event.preventDefault ? event.preventDefault() : event.returnValue = false;
var nameFirst = $('.js-user-name-first').val();
if (!nameFirst) {
$('.js-sign-up-error').text('Please type in your name.');
}
...
});
html布局:
<body>
<%= render :partial => "/shared/header" %>
<% if notice %>
<p class="alert alert-notice"><%= notice %></p>
<% end %>
<% if alert %>
<p class="alert alert-error"><%= alert %></p>
<% end %>
<%= yield %>
<%= render :partial => "/shared/login_form" %>
<%= render :partial => "/shared/sign_up_form" %>
<%= render :partial => "/shared/password_reset_form" %>
<%= render :partial => "/shared/footer" %>
<%= javascript_include_tag "home" %>
</body>
答案 0 :(得分:0)
原来在两个地方调用了注册表单的部分:在布局文件中(如上所示)和共享头文件中。因此,JS正在验证链接到布局中的注册表单,该表单不是用户填写的表单,因此无法注册输入的文本。我们只是删除了标题中的重复注册部分,现在它可以正常工作。