class Weaver::TextfieldJavascript
Public Class Methods
new(id)
click to toggle source
# File lib/weaver/element_types/textfield_javascript.rb, line 5 def initialize(id) @id = id end
Public Instance Methods
generate(&block)
click to toggle source
# File lib/weaver/element_types/textfield_javascript.rb, line 17 def generate(&block) if block instance_eval(&block) <<~SCRIPT if (!document.validators) { document.validators = {}; } document.validators["##{@id}"] = function() { var valid = function(data) { #{@validate_script}; return true; }($("##{@id}").val()); var object = $("##{@id}"); #{@change_script}; if (valid) { object.removeClass("required"); object.removeClass("error"); object.removeAttr("aria-invalid"); } else { object.addClass("required"); object.addClass("error"); object.attr("aria-required", "true"); object.attr("aria-invalid", "true"); } } $("##{@id}").keyup(function() { document.validators["##{@id}"](); }) $("##{@id}").blur(function() { document.validators["##{@id}"](); }) $("##{@id}").focusout(function() { document.validators["##{@id}"](); }) SCRIPT end end
onchange(script)
click to toggle source
# File lib/weaver/element_types/textfield_javascript.rb, line 9 def onchange(script) @change_script = script end
validate(script)
click to toggle source
# File lib/weaver/element_types/textfield_javascript.rb, line 13 def validate(script) @validate_script = script end