为什么Validator jQuery插件没有使用此配置进行验证?

时间:2015-07-31 21:07:29

标签: jquery html css jquery-validate ascx

我在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代码而不是依赖插件)。

1 个答案:

答案 0 :(得分:0)

使用onfoucusout

 $('[id$=firstform]').validate({
          onfocusout: function(element) {
           this.element(element);
        }
 });

添加了一个plunker http://plnkr.co/edit/JRNNVag0IL1Hd5GKwEMh?p=preview