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

时间:2015-12-02 14:23:20

标签: jquery ruby-on-rails ruby ajax regex

如何在我拥有的AJAX表单上进行表单验证?就目前而言,我已经制作了一个客户jQuery验证器来检查有效的IP地址,但似乎验证只发生在初始页面加载或刷新页面时,这是完全错误的。

资产/ Javascript角/ 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({
		rules: {
			ip: {
          validIP: true
          }
		}
});
<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 %>

1 个答案:

答案 0 :(得分: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(...)">