asp.net mvc - jQuery Mobile and Unobtrusive Validation -
i'm creating jquery mobile (alpha 3) based asp.net mvc 3 application utilizing unobtrusive validation comes mvc3. when page accessed directly (no hash in url), validation works perfectly. however, when navigate page, jquery mobile uses ajax navigation dynamically load (displaying hash in url) , validation stops working.
here sample of code in use:
model:
[required(errormessage = "missing value")] [displayname("property display name")] public int? propertyname { get; set; }
view (razor):
@html.labelfor(model => model.propertyname) @html.textboxfor(model => model.propertyname) @html.validationmessagefor(model => model.propertyname)
generated html:
<label for="propertyname">property display name</label> <input data-val="true" data-val-number="the field property display name must number." data-val-required="missing value" id="propertyname" name="propertyname" type="text" value="" /> <span class="field-validation-valid" data-valmsg-for="propertyname" data-valmsg-replace="true"></span>
it possible other pages have been loaded , html elements no longer have unique ids. other rolling own html helper class generate html label, textbox, , validationmessage, there way handle scenario?
i've been struggling bit same issue, @zote pointed me in right direction.
parse()
way go, make sure pass in selector ie:
jquery.validator.unobtrusive.parse("form")
or
jquery.validator.unobtrusive.parse(document)
the best way of hooking through jqmspageshow
event. triggered after each new page transition, so, may prefer before jqm has done it's magic on page using pagebeforeshow
event
$('div').live('pageshow',function(event){ jquery.validator.unobtrusive.parse(".ui-page-active form"); });
by using .ui-page-active
, narrow search down active page.
Comments
Post a Comment