首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xVal强制字段进入错误状态

xVal强制字段进入错误状态
EN

Stack Overflow用户
提问于 2009-09-28 23:33:19
回答 2查看 491关注 0票数 0

我有一个jQuery自动完成文件,它从我的MVC操作中获取现有数据。我希望确保输入到该字段的数据在数据库中不存在。

我在autocomplete上使用.result和.change将字段设置为class =“输入-验证-错误”。当我添加xVal客户端验证时,这仍然有效,但是xVal似乎清除了css类,所以现在字段条目简短地变红,然后返回到清除背景。

与其尝试更改xVal代码,我更愿意让xVal客户端验证以错误状态显示字段,就像正常的客户端数据验证错误一样。

我该怎么做?在自动完成.result事件中可以使用什么代码来强制xVal中的错误状态?

更新:,我尝试了怀亚特·巴内特的想法,但正如你从我的评论中看到的,这不是我想要的。以下是我所拥有的代码:

字段标记:

代码语言:javascript
复制
            <p>
                <%= Html.LocalisedLabel("ProjectId") %>
                <%= Html.TextBox("project.ProjectId") %>
                <%= Html.ValidationMessage("project.ProjectId", "*") %>
            </p>

xVal标记:

代码语言:javascript
复制
       <%= Html.ClientSideValidation<ProjectBO>("project").UseValidationSummary("myValidationSummary") %>
             <%= Html.ClientSideValidation<ProjectBO>("project").AddRule("ProjectId", new RemoteRule(Url.Action("ValidateProjectIdCreate", "LookUp", new { projectId = Model.ProjectId})))%>

自动完成的javascript标记:

代码语言:javascript
复制
<script type="text/javascript">

    $(document).ready(function() {
        $('#project_ProjectId').autocomplete('<%= Url.Action("ProjectIdList", "LookUp") %>',
{
    delay: 10,
    minChars: 1,
    matchCase: 0,
    matchSubset: 1,
    autoFill: false,
    maxItemsToShow: 10,
    cacheLength: 10
}
);

        $('#project_ProjectId').result(function(item) {
            if (item) {
                //match
                $('#project_ProjectId').attr("class", "input-validation-error");
            }
            else {
                $('#project_ProjectId').removeAttr("class");
            }
        });
        $('#project_ProjectId').change(function() {
            $('#project_ProjectId').attr("class", "");
        });
    });
</script>

这个脚本给了我要处理的事件,但是我能在其中放什么呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-29 13:41:19

为什么不利用升级到xVal 1.0的ajax验证玩具呢?那样的话,你就不必在这方面与框架作斗争了。

好的,因为这个角度不起作用,也许您可以使用autocomplete.result和jquery (xVal也使用这个)来处理事情。

票数 1
EN

Stack Overflow用户

发布于 2009-09-30 00:00:02

终于解决了。

我在输入字段中使用了jQuery自动完成,通过显示现有数据库条目的查找列表,为用户提供了一些指导。

在退出字段时,通过从自动完成中选择显示的列表项,或者通过键入一个不存在的数据库条目,xVal RemoteValidator触发以设置验证失败条件或清除它。

守则如下:

代码语言:javascript
复制
       <%= Html.ClientSideValidation<ProjectBO>("project").UseValidationSummary("myValidationSummary"

RemoteRule(Url.Action("ValidateProjectIdCreate",.AddRule("ProjectId",new %>“LookUp”))

自动完成脚本是作为折叠:

代码语言:javascript
复制
<script type="text/javascript">
    $(document).ready(function() {
        $('#project_ProjectId').autocomplete('<%= Url.Action("ProjectIdList", "LookUp") %>',
            {
                delay: 10,
                minChars: 1,
                matchCase: 0,
                matchSubset: 1,
                autoFill: false,
                maxItemsToShow: 10,
                cacheLength: 10
             }
          );
    });
</script>

然后,我删除了问题中前面代码中的autocomplete.result和.change事件。

效果很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1489864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档