Trying to make jquery validation errors get added dynamically, why isn't this code working? -
i'm using following code try , dynamically add error labels , not have use many if else statements doesn't seem work, appreciated :)
this works:
errorplacement: function(error, element) { if (element.attr("name") == "site" ) error.insertafter("div#siteerror"); else if (element.attr("name") == "name" ) error.insertafter("div#nameerror"); else if (element.attr("name") == "email" ) error.insertafter("div#emailerror"); else if (element.attr("name") == "password" ) error.insertafter("div#passworderror"); else if (element.attr("name") == "headerimage" ) error.insertafter("div#headerimageerror"); else if (element.attr("name") == "header1" ) error.insertafter("div#header1error"); else if (element.attr("name") == "header2" ) error.insertafter("div#header2error"); else if (element.attr("name") == "headerfont" ) error.insertafter("div#headerfonterror"); else if (element.attr("name") == "menucolor" ) error.insertafter("div#menucolorerror"); else if (element.attr("name") == "menufontcolor" ) error.insertafter("div#menufontcolorerror"); else if (element.attr("name") == "menufont" ) error.insertafter("div#menufonterror"); else if (element.attr("name") == "backgroundcolor" ) error.insertafter("div#backgroundcolorerror"); else if (element.attr("name") == "sitefontcolor" ) error.insertafter("div#sitefontcolorerror"); else if (element.attr("name") == "sitefont" ) error.insertafter("div#sitefonterror"); else if (element.attr("name") == "galleryimages" ) error.insertafter("div#galleryimageserror"); else error.insertafter(element); },
but doesn't:
errorplacement: function(error, element) { var $inputs = $('input'); $inputs.each(function(){ var name = $(this).attr('name'); var errorname = ('"div#' + name + 'error"') if (name === name) { console.log("name: " + name + " " + "errorname: " + errorname); error.insertafter($($.parsehtml(errorname))); console.log("name matches!"); } else { error.insertafter(element); } }); },
it returns of correct values reason won't work, ideas?
the developer has given element
argument represents element being validated.
var name = $(element).attr('name');
since errorplacement
deals each element it's being validated, not need .each()
loop, , element
argument work each 1 already.
you messed quotation marks here, missed semicolon, , don't need parenthesis...
var errorname = ('"div#' + name + 'error"')
this works instead...
var errorname = 'div#' + name + 'error';
if you're trying insert error message specific div
...
$(errorname).html(error);
if (name === name)
totally pointless, because there never scenario it's not equal itself.
demo: jsfiddle.net/rttlsoxl/
final:
errorplacement: function(error, element) { var name = $(element).attr('name'); var errorname = 'div#' + name + 'error'; console.log("name: " + name + " " + "errorname: " + errorname); $(errorname).html(error); },
Comments
Post a Comment