2014-07-14 5 views
2

Я пытаюсь проверить, что все необходимые поля были заполнены в моем form_for перед тем, как он отправит, и там 95%, но он все еще отправляется перед проверкой и выдачей предупреждения.Rails validate form_for перед отправкой

Вот начало формы:

<%= form_for Product.new, :options => {:id => "new_listing", :onSubmit => "validateForm()"}, :url => {:action => "create"}, :html => {:multipart => true}, :builder => Judge::FormBuilder do |f| %> 

И вот JavaScript:

<script> 
    validateForm = function(){ 
    judge.validate(document.getElementById('name_input'), { 
     valid: function(element) { 
      element.style.border = '1px solid green'; 
     }, 
     invalid: function(element, messages) { 
      element.style.border = '1px solid red'; 
      alert(messages.join(',')); 
     } 
     }); 
    }; 

</script> 

Что мне нужно сделать, чтобы убедиться, что предупреждение выдается, когда поле name_input hasn Не было заполнено до того, как оно отправляется на бэкэнд? Что-то делать с булевыми, но я не эксперт здесь.

+0

Почему вы следуете этим маршруты избежать Rails, чтобы сделать валидации, и с помощью JQuery? С данной информацией сложно отладить проблему. Что такое 'судья' в вашем блоке скрипта? Где размещен блок сценария? и т. д. – vee

ответ

0

Вы можете попробовать вернуть false, если проверки недействительны. Когда вы используете функцию javascript onSubmit, она будет продолжать делать все, что будет дальше, если js не вернет false.

+0

Да, но я прошу помощи на * как * написать код для этого. –

+0

Итак, вы хотите, чтобы ваш javascript был чем-то вроде: 'if (document.getElementById ('name_input'). Text() ==" ") {return false; } else {return true; } ', и вы можете сделать любое предупреждение, которое вы хотите до возвращения. – PatoBeltran

0

Его слепая догадка, но это имеет шансы работать:

judge.validate(document.getElementById('name_input'), { 
    ..., 
    invalid: function(element, messages) { 
     ... 
     return false; 
    } 
}); 
+0

К сожалению, я пробовал это, и он не работает –

Смежные вопросы