На мой взгляд, у меня есть:Rails submit_tag форма проверки
event.html.erb
<div class="form-group registration_form">
<%= form_tag(register_learner_path, {remote: true}) do -%>
<p>
<%= label_tag :email %>
<%= text_field_tag :email %>
<p/>
<p>
<%= label_tag "First Name" %>
<%= text_field_tag :first_name %>
<p/>
<p>
<%= label_tag "Last Name" %>
<%= text_field_tag :last_name %>
<p/>
<%= hidden_field_tag 'event_id', @event.id %>
<p class="submit_register">
<%= submit_tag "Register for this event", id: 'register_button', :onclick => "return validateform();" %>
<span class="help-block">Enter your name and email above and the link will be magically revealed</span>
<p/>
<%- end -%>
</div>
... и мой CoffeeScript является:
events.js.coffee
jQuery ->
if $('div').hasClass 'form-group registration_form'
$(".location").hide()
$(".location-section-link").hide()
$(".submit_register").click ->
validateForm()
if validateEmail($("#email").val()) == false
alert('Please enter a valid email address')
return false
else
$(".location").show()
$(".location-section-link").show()
$(".registration_form").hide()
#validate email
validateEmail = (email) ->
re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
re.test email
#validate email, first name and last name
validateForm = ->
if $("#email").val() == '' || $("#first_name").val() == '' || $("#last_name").val() == ''
alert('Please enter first name, last name, and email')
return false
По существу, я пытаюсь выполнить две проверки здесь. Один я хочу, чтобы не было пустых строк в электронной почте, имени и фамилии. Во-вторых, я хочу проверить «действительное» электронное письмо на основе регулярного выражения в js.
Поведение, которое я вижу с помощью этого кода, заключается в том, что обе проверки выполняются, однако я хочу, чтобы проверка подлинности электронной почты выполнялась только при прохождении другой проверки (теста пустых строк).
'$ ('div'). HasClass 'form-group registration_form'' просто странно. Вы выбираете каждый «div» на странице, а затем фильтруете их, что ужасно для производительности. Используйте '$ group = $ ('. Form-group.registration_form')' 'if $ group.length' – max
@papirtiger Просто для проверки sanidty https://gist.github.com/marklocklear/5f2b61f2d3b66441824a – Lumbee
Лучше. Также ['submit_tag'] (http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-submit_tag) создает элемент' ', который не имеют контент, он имеет только атрибут value, который указывает текст, что вы хотите ['button_tag'] (http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-button_tag) , И избавиться от атрибута onclick, пока вы на нем. – max