Как сделать кнопку отправки можно нажать, если валидация соответствует модели ruby ​​на рельсах - PullRequest
0 голосов
/ 24 июня 2018

Я использую рельсы 5.

У меня есть модель с именем "Пост" и сообщение имеет 2 параметра:

validates :title, presence: true, length: {minimum: 5}, :uniqueness => true
validates :body, presence: true, length: {minimum: 30}

И в почтовой форме:

<%= f.text_field :title %>
<%= f.text_field :body %>
<%= f.submit "Save"%>

Мой вопрос: Как сделать, чтобы эта кнопка отправки была нажата, только если проверка соответствует модели (я имею в виду, что кнопка отправки не может быть нажата, если :title меньше 5 символов)

Ответы [ 3 ]

0 голосов
/ 24 июня 2018

Я нашел отличный учебник для вашего случая.Попробуйте this для шагов, а также client_side_validations gem можно использовать для простой проверки вашей формы со стороны клиента.( Совет : использование функций обратного вызова для отключения кнопки отправки)

0 голосов
/ 24 июня 2018

я уже нашел решение ..

вот мои коды:

<%= form_for(post, html: { multipart: true, :onsubmit => "return validate();" }) do |f| %>
  <%= f.text_field :title, id: 'text' %>
  <%= f.text_field :body %>
  <input type="submit" name="submit" value="Save" >
<% end %>

и я положил этот скрипт js внизу моей формы:

 <script type="text/javascript">
        function validate()
        {
            if ( document.getElementById("text").value.length <= 5 )
            {
                alert( "Title is too short, must be at least 5 characters" );
                return false;
            }   
            return true;
        }
    </script>

Спасибо всем вам, ребята .. очень ценю это.

0 голосов
/ 24 июня 2018

Вы должны написать проверку на стороне клиента, чтобы включить опцию отправки.

 <%= f.text_field :title, required: true %>

В приведенном выше примере require: true будет проверять наличие. Нажмите здесь для проверки длины через javascript.

...