【发布时间】:2023-03-12 23:53:01
【问题描述】:
我的 MVC 应用程序正在生成以下 HTML,这会在提交时导致 Javascript 语法错误(我没有在两个文本框中输入任何内容)。这是生成的 HTML 和提交处理程序:
<form action="/UrIntake/Save" id="UrIntakeForm" method="post">
<input data-val="true" data-val-length="The field LastName must be a string with a maximum length of 50." data-val-length-max="50" data-val-required="The LastName field is required." id="FormSubmitter_LastName" name="FormSubmitter.LastName" type="text" value="" />
<input data-val="true" data-val-length="The field FirstName must be a string with a maximum length of 50." data-val-length-max="50" data-val-required="The FirstName field is required." id="FormSubmitter_FirstName" name="FormSubmitter.FirstName" type="text" value="" />
<div id="SubmissionButtons" class="right">
<input type="button" onclick="SubmitForm()" value="Submit" />
<input type="button" onclick="CancelForm()" value="Cancel" />
</div>
</form>
function SubmitForm() {
$("#UrIntakeForm").valid();
.
.
.
这是发生语法错误的 jQuery 代码 (v1.9.0)。 “数据”未定义,“返回”行是发生错误的地方:
parseJSON: function( data ) {
// Attempt to parse using the native JSON parser first
if ( window.JSON && window.JSON.parse ) {
return window.JSON.parse( data );
}
大概,我不必在文本框中输入任何内容(然后应该会收到“必填字段”消息)。这是导致错误的原因吗?这没有意义,但我看不出还有什么可能。
【问题讨论】:
-
我认为从您在此处显示的内容看不出该错误。尝试在发生错误的 jQuery 代码中放置一个断点,然后回顾堆栈跟踪以查看它是从哪里调用的。这将为您提供有关为什么将 null 传递给此函数的线索。
-
会的。当我发现有用的东西时,我会回来的。谢谢。
-
请在此处投票,以便微软尽快更正:connect.microsoft.com/VisualStudio/feedback/details/776965/…
-
添加了 jquery 1.10 标签,因为它也是这个问题
标签: asp.net-mvc jquery-validate unobtrusive-validation jquery-1.9 jquery-1.10