8

当我使用 ajax 提交包含具有“maxlength”属性的文本字段的表单时,我收到一个 javascript 错误:Uncaught SyntaxError: Unexpected token u (jquery-1.9.1.min.js:3)

如果我删除 maxlength 属性,一切运行正常。

我的 HTML 将我的页面精简到最低限度以复制问题:

<html>
    <head>
        <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
        <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

        <script src="/Scripts/jquery.unobtrusive-ajax.js"></script>
        <script src="/Scripts/jquery.validate.js"></script>
        <script src="/Scripts/jquery.validate.unobtrusive.js"></script>
    </head>
    <body>
        <form action="#" data-ajax="true" id="form0" method="post">
             <input id="deposit" name="numberValue" type="text" class="despositInput" maxlength="8" value="1000">
             <input type="submit" value="go">
        </form>    
    </body>
</html>

无法弄清楚我做错了什么 - 也许来自 Visual Studio 的模板提供的 jquery 脚本不兼容?我会很感激任何帮助,谢谢。

4

1 回答 1

10

这似乎是Microsoft.jQuery.Unobtrusive.Validation结合 jQuery 1.9 中的一个错误>

在此博客中,建议使用 js 文件的补丁

我重现了您的问题并通过向您的 html 添加具有所需属性的 div 来解决它,以防止将未定义的内容提供给 json 解析。

    <form action="#" data-ajax="true" id="form0" method="post">
        <div data-valmsg-for="numberValue" data-valmsg-replace="true">deposit not valid</div>
        <input id="deposit" name="numberValue" type="text"  maxlength="8" value="1000">
        <input type="submit" value="go">
    </form>    

还有一个针对此问题的Microsoft Connect问题。对此进行投票,以使其在 Microsoft 中得到优先考虑。

于 2013-08-19T13:00:15.463 回答