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>

私が間違っていることを解決できません。おそらく、ビジュアル スタジオのテンプレートによって提供される jquery スクリプトに互換性がありませんか? 助けていただければ幸いです、ありがとう。

4

1 に答える 1

10

これは、jQuery 1.9 と組み合わせたMicrosoft.jQuery.Unobtrusive.Validationのバグのようです>

このブログでは、js ファイルのパッチが提案されています

問題を再現し、必要な属性を持つ div を html に追加して、未定義が 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 に答える