/ / प्रस्तुत करने से पहले फॉर्म फील्ड सत्यापन करने के लिए रेल्स 3 वे क्या है? - रूबी-ऑन-रेल्स -3

फॉर्म जमा करने से पहले रेल्स 3 वे क्या है? - रूबी-ऑन-रेल्स -3

मैं मूल रूप से उन खोजों को रोकना चाहता हूं जो 3 वर्णों से कम लंबी हैं।

2.x रेल में, मैं सिर्फ एक ऑनक्लिक इवेंट में ऐसा करूंगा। मैं समझता हूं कि रेल 3 में AJAX अनुरोधों और प्रतिक्रियाओं को अब कैसे संभालना है, लेकिन onClick घटना का उपयोग करते हुए रेल 3 में अप्रिय नहीं माना जाएगा?

उत्तर:

जवाब के लिए 2 № 1

हाँ, onclick वास्तव में अप्रिय माना जाएगा। आप जावास्क्रिप्ट में किसी तृतीय-पक्ष सत्यापन लाइब्रेरी का उपयोग करना चाह सकते हैं। यह इस तरह से कुछ काम कर सकता है:

<form ... class="validated">
<input type="text" name="name" data-validation="presence=true,format=/[a-zA-Z0-9s]+/" />
<input type="submit" value="Send" />
</form>

<script language="javascript">
$("form.validated").live("submit", function() {
var data = $(this).serializeArray();
var errors = [];
$(this).find("input").each(function() {
var input = $(this);
$.each($(this).attr("data-validation").split(","), function(validation) {
var type, param = validation.split("=");
if(type == "presence") {
if(input.val() == "") errors += input.attr("name") + " is empty";
} else if(type == "format") {
...
}
});
return (errors.length == 0);
});
</script>

(मेरे सिर के बाहर बस कुछ खुरदुरा कोड। बहुत सारे कैविटीज़।)

लेकिन यह सब लिखने के बजाय, शायद आप केवल उपयोग करना चाहते हैं: http://github.com/jzaefferer/jquery-validation


जवाब के लिए 0 № 2

समझ गया! मैंने इस कोड को application.js में डाला:

// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
$(function() {
$("#search_submit").click(function() {
if ($("#search_value").val().length < 3) {
alert("You must supply 3 or more characters in your search.");
return false;
}
})
})

मेरा रूप है:

  <%= form_for(@search, { :remote => true, :html => { :id => "left", :class => "custom-border" } }) do |f| %>
<h2><%= f.label :value, "Search By Part or Interchange #" %></h2>
<p><%= f.text_field :value %></p>
<p class="button"><%= f.submit "Search" %></p>
<% end %>

देखा!