我在Sharepoint .ascx文件中有以下HTML和jQuery,试图验证,现在只需要一个" required"字段(名称):
<html>
. . .
<form id="firstform">
<label class="firstblocklabel finaff-webform-field-label">Traveler's name:</label>
<input class="firstblockinput finaff-webform-field-input" type="text" name="travelername" id="travelername" title="Last Name, First Name, Middle Initial" required/>
</br>
. . .
</form>
</html>
<script src="http://bassassistance.de/jquery-plugins/jquery-plugin-validation" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$('[id$=firstform]').validate();
});
</script>
......但它不起作用;进入&#34;旅行者名称&#34;输入文本并将其退出为空,或者添加一个值然后将其删除并退出,不会调用&#34;请输入val&#34;或其他任何信息,靠近&#34;旅行者名称&#34;文本输入元素。
如您所见,&#34;旅行者名称&#34;被标记为&#34;必需&#34;,我引用了验证插件,并且我在就绪函数中调用了validate()。
我是否还需要添加对.CSS文件的引用?
注意:我也试过这个网址:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.14.0/jquery.validate.min.js" type="text/javascript"></script>
......但这也行不通。
请注意,我有一个类似的问题here,但在这种情况下,我没有使用任何代码隐藏,因此使其工作起来应该更简单。
一件有趣的事情发生了:在IE中运行我的页面(我知道,这是我的第一个错误,但那是大多数用户拥有/使用的),我得到了一个&#34;错误页面& #34; msg位于浏览器的底部。
要调查错误可能是什么,我在Chrome中运行了该页面。在那里,它在页面上显示了错误是什么 - &#34;请求者姓名&#34;输入文本元素成为焦点,并且&#34;请填写此字段&#34; msg出现在旁边。一旦我进入那里,一切都很好。
那么:验证插件毕竟是有效的吗?
在查看我的代码时,我发现了这个:
boxRequesterName.Attributes.Add("data-group", "1");
boxRequesterName.Attributes.Add("required", "true");
我只是含糊地回忆起那个;显然它是Chrome浏览器可以很好地使用的HTML5好东西,而我有点过时的IE浏览器看起来很尴尬(或者很困惑)。
所以也许这种方法对我来说实际上更好(添加明确的HTML5代码而不是依赖插件)。
答案 0 :(得分:0)
使用onfoucusout
$('[id$=firstform]').validate({
onfocusout: function(element) {
this.element(element);
}
});
添加了一个plunker http://plnkr.co/edit/JRNNVag0IL1Hd5GKwEMh?p=preview