2014-04-06 285 views
0

我有一個註冊表單與JS驗證。當註冊表單直接在html中時它工作正常。但是,通過部分訪問註冊表單時,它無法從表單讀取變量。在這種情況下,表單總是顯示錯誤「請輸入您的姓名」。變量無法訪問JS在部分

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> 
+1

你的JS在'document.ready()'回調中嗎? – Arvoreniad

+0

從錯誤描述,點擊事件處理,所以回調在正確的地方 – Vitalyp

回答

0

原來的部分爲註冊表單被稱爲在兩個地方:在佈局文件中(如上所示)和共享頭文件。因此,JS正在驗證在佈局中鏈接的註冊表單,該表單並非由用戶填寫,因此未能註冊輸入的文本。我們只是刪除頭中的重複註冊部分,現在它工作正常。