使用Rails和AJAX提交表单前的正则表达式

使用Rails和AJAX提交表单前的正则表达式

问题描述:

如何使用我拥有的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 %>

,因为我不知道红宝石,我会尽量回答客户端。 您是否尝试验证单击按钮上的表单? 例如,有这样一个类似的代码?

<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

这是因为您直接将它写入