ruby on rails - jQuery .closest() returning multiple results -
i trying implement validation on html form highlight form inputs bootstrap class has-error
in case user enter wrong informations in rails app. using ajax custom data
object contains error messages. far i've come this:
application.js
jquery.each(data.messages, function(i, val){ $("label").val(i).closest("form-group").addclass("has-error"); });
_account.html.erb
<div class="form-group"> <%= account_form.label(:label, "label") %> <%= account_form.text_field(:label, class: "form-control") %> </div> <div class="form-group"> <%= account_form.label(:iban, "iban") %> <%= account_form.text_field(:iban, class: "form-control", maxlength: 29, data: {toggle: "tooltip"}) %> </div> <div class="form-group"> <%= account_form.label(:swift, "swift") %> <%= account_form.number_field(:swift, class: "form-control", maxlength: 8, data: {toggle: "tooltip"}) %> </div>
for example, i
= "swift"
, val
= "is blank"
, if user provides label forgets other two, "swift"
, "iban"
in i
.
my problem each loop .each
does, .closest
returns 3 divs can't manage select single div based on label .closest
try this:-
jquery.each(data.messages, function(i, val){ $("label:contains('"+i+"')").closest("form-group").addclass("has-error"); });
or match text:-
jquery.each(data.messages, function(i, val){ var lbl=$('label').filter(function () { return $(this).text().tolowercase()==i.tolowercase(); }).first(); lbl.closest(".form-group").addclass("has-error"); });
Comments
Post a Comment