当我使用jQuery提交表单时:
$('#saveButton').click(function () {
if (true) {
$('#submitForm').submit();
}
});
我在文件jquery....min.js
中收到错误:
SyntaxError:JSON.parse:第1行第1列的意外字符 JSON数据
我使用asp.net MVC生成表单:
@using (@Html.BeginForm("ActionName", "ControllerName", FormMethod.Post, new { id = "submitForm" }))
提交按钮。我使用的是顶级的。发生这种情况时,不会点击按钮1:
<input type="button" id="saveButton" class="bigButton" value="Save" />
<input type="submit" id="submitRequestButton" class="bigButton" value="Submit" />
我查看FF上的网络标签,但我没有看到POST。如何追踪或缩小导致此问题的原因?
更新
控制台窗口中的代码是我得到的,它指向我缩小的jQuery lib:
/ *! jQuery v2.1.0 | (c)2005年,2014年jQuery Foundation,Inc。| jquery.org/license * / !function(a,b){&#34; object&#34; == typeof module&amp;&amp;&#34; object&#34; == typeof module.exports?module.exports = a.document?b(a, !0):function(a){if(!a.document)抛出新的错误(&#34; jQuery需要一个带文档的窗口&#34;);返回b(a)}:b(a)}(& #34; undefined&#34;!= typeof window?window:this,function(a,b){var c = [],d = c.slice,e = c.concat,f = c.push,g = c .indexOf,H = {},I = h.toString,J = h.hasOwnProperty中,k =&#34;&#34; .trim,L = {},M = a.document,N =&#34; 2.1.0&#34;,o = function(a,b){return new o.fn.init(a,b)},p = / ^ - ms - /,q = / - ([\ da-z] )/ gi,r = function(a,b){return b.toUpperCase()}; o.fn = o.prototype = {jquery:n,constructor:o,selector:&#34;&#34;,length :0,toArray:function(){return
......这种情况会持续大约1000多行。
答案 0 :(得分:2)
我通过从代码中删除MVC验证脚本和我自己的自定义验证脚本来解决问题:
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/conditional-validation.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/customItemRequestValidation.js")" type="text/javascript"></script>
我编写了新的自定义验证,而不是基于MVC的验证。我不需要MVC内置的验证。我不知道为什么其中一个文件导致JSON解析错误。
我删除的旧自定义验证脚本做了类似的事情:
$.validator.addMethod('requiredif',
和
$.validator.unobtrusive.adapters.add(
'requiredif',
我的猜测是我的一个旧的自定义验证脚本搞砸了,或者我的新验证脚本以某种方式与MVC的验证脚本冲突。