我创建利用自带的MVC3不显眼的验证一个jQuery Mobile (Alpha 3)基于ASP.NET MVC 3应用。当直接访问页面(Url中没有散列)时,验证完美无缺。但是,当您导航到页面时,jQuery Mobile使用Ajax Navigation动态加载它(在Url中显示哈希)并且验证停止工作。jQuery Mobile的和不显眼验证
下面是代码的使用的示例:
型号:
[Required(ErrorMessage = "Missing value")]
[DisplayName("Property Display Name")]
public int? PropertyName { get; set; }
视图(剃刀):
@Html.LabelFor(model => model.PropertyName)
@Html.TextBoxFor(model => model.PropertyName)
@Html.ValidationMessageFor(model => model.PropertyName)
生成的HTML:
<label for="PropertyName">Property Display Name</label>
<input data-val="true" data-val-number="The field Property Display Name must be a 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>
其他页面以前已加载和HTML元素不再有唯一的ID这是可能的。除了滚动自己的Html Helper类来为Label,TextBox和ValidationMessage生成HTML以外,有什么办法可以处理这种情况?
我想知道的唯一ID与JQM,它仍然困扰着我。 JQM作者自己并没有多说这些。我甚至看到了一个预设页脚的例子,其中id被复制。我看到了两个解决方案 - 无论是照顾你的ID的自己,或通过强制删除您从DOM离开作为新的一个被加载的页面摧毁JQM缓存 - `pagebeforecreate`事件 – naugtur 2011-02-08 08:16:35
我们遇到类似问题,但避风港”根本没有工作。我们使用jQ 1.5和jQM 1.03a。在这里挣扎.. – pavsaund 2011-02-17 10:16:27