在ajax表单提交上输入maxlength字段会导致“Uncaught SyntaxError:unexpected token u”

当我使用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脚本是不兼容的?我很感激任何帮助,谢谢.

这似乎是 Microsoft.jQuery.Unobtrusive.Validation与jQuery 1.9>组合的错误.

在这blog中,建议使用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问题.同时投票决定在微软内部优先考虑.

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...