仅在命中保存时导航client_side_validations

时间:2013-02-19 02:17:00

标签: ruby-on-rails client-side-validation

我不希望clien-side-validations验证模糊输入,就在我点击保存时。

这可能吗? 我怎么能这样做?

我只有一些简单的验证(基本上是空的)......而且我正在考虑手工编写它...它值得吗?

1 个答案:

答案 0 :(得分:1)

您可以使用纯Javascript或在任何JQuery / Prototype和类似框架的帮助下轻松完成。

这是我尝试使用JQuery的代码

<html>
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <body>
        <form id="my_form" action="http://google.com?q=ruby" method="GET">
            <input type="text" name="first_name" placeholder="First Name" /> <br/>
            <input type="text" name="last_name" placeholder="Last Name" /> <br/>
            <input type="text" name="city" placeholder="City" /> <br/>
            <input id="form_button" type="button" value="Submit"/>
        </form>
    </body>
</html>
<script type="text/javascript">
    $(document).ready(function() {
        $("#form_button").on('click', function() {
            var form_valid = true;
            $("#my_form > input[type='text']").each(function() {
                if(this.value == "") {
                    var error_span_present = $(this).next("span").length != 0;
                    if(!error_span_present) {
                        $("<span style='color:red;'>" + $(this).attr("placeholder") + " cannot be Blank </span>").insertAfter($(this));
                    } 
                    else { 
                        $(this).next("span").html($(this).attr("placeholder") + " cannot be Blank");
                    } 
                    form_valid = false;
                }   
                else {
                    if($(this).next("span").length != 0) {
                        $(this).next("span").remove();
                    } 
                }
            });
            if(form_valid){ 
                $("#my_form").submit();
            }
        });
    });
</script>

以下是演示此代码的JSFiddle

希望这有帮助