为什么 Validator jQuery 插件不使用此配置进行验证?
Why is the Validator jQuery plugin not validating with this configuration?
我在 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>
...但它不起作用;输入 "travelername" 输入文本并退出它为空,或添加一个值然后删除它并退出,不会调用 "Please enter a val" 或任何它应该是的消息,靠近 "travelername" 文本输入元素.
如您所见,"travelername" 被标记为 "required",我正在引用验证插件,并且我在就绪函数中调用 validate()。
我是否还需要添加对 .CSS 文件的引用?
注意:我也试过这个url:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.14.0/jquery.validate.min.js" type="text/javascript"></script>
...但这也行不通。
请注意,我有一个类似的问题 ,但在这种情况下,我没有使用任何代码隐藏,因此它应该更简单。
更新
一件有趣的事情发生了:在 运行 我的 IE 页面上(我知道,这是我的第一个错误,但这是大多数用户 have/use),我得到了一个 "Error on Page" 消息在浏览器底部。
为了调查错误可能是什么,我 运行 Chrome 中的页面。在那里,它在页面上向我展示了错误是什么 - "Requester Name" 输入文本元素成为焦点,并且 "Please fill out this field" 消息出现在它旁边。一旦我在那里输入了一些东西,一切都很好。
那么:验证插件到底能不能用?
在查看我的代码时,我发现是这样的:
boxRequesterName.Attributes.Add("data-group", "1");
boxRequesterName.Attributes.Add("required", "true");
我只是依稀记得添加了那个;显然它是一个 HTML5 的好东西 Chrome 可以很好地配合使用,而我有点过时的 IE 版本看起来斜视(或困惑)。
所以也许这种方法对我来说实际上是更好的方法(添加显式 HTML5 代码而不是依赖插件)。
使用onfoucusout
$('[id$=firstform]').validate({
onfocusout: function(element) {
this.element(element);
}
});
添加了一个 plunker http://plnkr.co/edit/JRNNVag0IL1Hd5GKwEMh?p=preview
我在 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>
...但它不起作用;输入 "travelername" 输入文本并退出它为空,或添加一个值然后删除它并退出,不会调用 "Please enter a val" 或任何它应该是的消息,靠近 "travelername" 文本输入元素.
如您所见,"travelername" 被标记为 "required",我正在引用验证插件,并且我在就绪函数中调用 validate()。
我是否还需要添加对 .CSS 文件的引用?
注意:我也试过这个url:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.14.0/jquery.validate.min.js" type="text/javascript"></script>
...但这也行不通。
请注意,我有一个类似的问题
更新
一件有趣的事情发生了:在 运行 我的 IE 页面上(我知道,这是我的第一个错误,但这是大多数用户 have/use),我得到了一个 "Error on Page" 消息在浏览器底部。
为了调查错误可能是什么,我 运行 Chrome 中的页面。在那里,它在页面上向我展示了错误是什么 - "Requester Name" 输入文本元素成为焦点,并且 "Please fill out this field" 消息出现在它旁边。一旦我在那里输入了一些东西,一切都很好。
那么:验证插件到底能不能用?
在查看我的代码时,我发现是这样的:
boxRequesterName.Attributes.Add("data-group", "1");
boxRequesterName.Attributes.Add("required", "true");
我只是依稀记得添加了那个;显然它是一个 HTML5 的好东西 Chrome 可以很好地配合使用,而我有点过时的 IE 版本看起来斜视(或困惑)。
所以也许这种方法对我来说实际上是更好的方法(添加显式 HTML5 代码而不是依赖插件)。
使用onfoucusout
$('[id$=firstform]').validate({
onfocusout: function(element) {
this.element(element);
}
});
添加了一个 plunker http://plnkr.co/edit/JRNNVag0IL1Hd5GKwEMh?p=preview