2015-12-02 79 views
0

如何使用我擁有的AJAX表單進行表單驗證?就像現在這樣,我做了一個客戶jQuery驗證器來檢查一個有效的IP地址,但似乎驗證只發生在初始頁面加載或者當我刷新頁面時,這是完全錯誤的。使用Rails和AJAX提交表單前的正則表達式

資產/ Java腳本/ tools.js

//Validation 
 
jQuery.validator.addMethod('validIP', function(value) { 
 
    var split = value.split('.'); 
 
    if (split.length != 4) 
 
     return false; 
 

 
    for (var i=0; i<split.length; i++) { 
 
     var s = split[i]; 
 
     if (s.length==0 || isNaN(s) || s<0 || s>255) 
 
      return false; 
 
    } 
 
    return true; 
 
}, alert('Invalid IP Address')); 
 

 
$(".form_ip").validate({ 
 
\t \t rules: { 
 
\t \t \t ip: { 
 
      validIP: true 
 
      } 
 
\t \t } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

的意見/工具/ ping.js.erb

$(".output").html("<%= j (@results) %>");

的意見/工具/表格/ _ping.html.erb

<%= form_tag ping_tool_path(1), role: "form", class: "form-inline form_ip", name: "ping-form", method: "post", remote: true do %> 
 
    <%= text_field_tag :ip, params[:ip], class: "form-control" %> 
 
    <%= submit_tag "Ping", name: nil, class: "btn btn-default" %> 
 
    <% end %>

回答

0

,因爲我不知道紅寶石,我會盡量回答客戶端。 您是否嘗試驗證單擊按鈕上的表單? 例如,有這樣一個類似的代碼?

<form class="form-inline form_ip" name="ping-form" method="post"> 
    <input type="text" id="ip" class="form-control"> 
    <input type="button" class="btn btn-default" onclick="$('.form_ip').validate(...)"> 
+0

嘗試過,在頁面加載時仍彈出驗證警報。 – Godzilla74

+0

這是因爲您直接將它寫入