提交按钮不会触发服务器端代码
Posted
技术标签:
【中文标题】提交按钮不会触发服务器端代码【英文标题】:submit button does not trigger server-side code 【发布时间】:2010-10-24 01:02:13 【问题描述】:问题说明了一切。我有一个使用 jquery 的 asp.net 页面。起初,当我单击提交按钮时,它会显示对象预期错误。我运行了firebug,它显示了在按钮的onClientClick上添加的'return validate()'函数的错误。
<script type="text/javascript">
$(document).ready(function()
// add custom validation methods
$.validator.addMethod('phone', function(value, el, params)
return this.optional(el) || /^[0-9,+,(), ,]1,(,[0-9]+)0,$/.test(value);
, 'Please enter a valid phone number');
$.validator.addMethod('numbers', function(value, el, params)
return this.optional(el) || /^[0-9]+$/.test(value);
, 'Invalid entry. Only Numeric is allowed.');
$.validator.addMethod('domainurl', function(value, el, params)
return this.optional(el) || /^(http\:\/\/(?:www\.)?[a-zA-Z0-9]+(?:(?:\-|_)[a-zA-Z0-9]+)*(?:\.[a-zA-Z0-9]+(?:(?:\-|_)[a-zA-Z0-9]+)*)*\.[a-zA-Z]2,4(?:\/)?)$/.test(value);
, 'Please enter a valid domain url');
$.validator.addMethod('selectone', function(value, element)
return this.optional(element) || (value.indexOf("none") == -1);
, 'Please select an option.');
$("#form1").validate(
debug: true,
rules:
txt_name:
required: true,
minlength: 2
,
txt_cmp:
required: true,
minlength: 2
,
txt_tel1:
phone: true,
required: true,
minlength: 3
,
txt_tel2:
phone: true,
required: false,
minlength: 3
,
txt_mob:
phone: true,
required: false,
minlength: 9
,
txt_email:
required: true,
email: true
,
txt_domname:
required: true,
domainurl: true
,
radiobt_domain: "required",
ddl_yremail:
required: true,
selectone: true
,
ddl_email:
required: true,
selectone: true
,
txt_space:
required: true,
numbers: true
,
txt_calfr:
required: true
,
txt_calto:
required: true
,
messages:
txt_name:
required: "This field is required",
minLength: "Please enter a valid name"
,
txt_cmp:
required: "This field is required",
minLength: "Please enter a valid commpany name"
,
txt_tel1:
required: "This field is required",
minLength: "Please enter a valid telephone number"
,
txt_tel2:
minLength: "Please enter a valid telephone number"
,
txt_mob:
minLength: "Please enter a valid mobile number"
,
txt_email:
email: "Please enter a valid email address",
required: "This field is required"
,
txt_domname:
required: "This field is required"
,
radiobt_domain: "Select the Hosting Type"
);
);
</script>
我删除了它,现在提交按钮仍然不起作用。服务器端代码未执行。它没有显示任何错误。我不知道是什么问题。
我已在此处发布代码:object expected - jquery
【问题讨论】:
这个问题太模糊了。我同意 Bobby,提供尽可能多的代码。首先要检查的是,“服务器是否收到了请求?” 我认为服务器没有收到请求。我添加了断点,似乎服务器端按钮单击命令没有触发。代码:***.com/questions/819801/object-expected-jquery 首先:这是网页还是 asp.net mvc,您还需要使用您正在使用的代码进行更新;例如:您的提交按钮,它正在调用的代码, TStamper,这是一个网页。我不明白你关于更新的声明的第二部分。请详细说明。 编辑您的问题以包含代码(或至少是示例):这样我们就可以看到错误所在 【参考方案1】:编辑:看到代码之后。即使在您删除按钮中对 Validate() 的调用后表单仍未提交的原因是因为您有 debug:true,这会阻止表单提交。将其更改为 debug: false ,它将提交。
$("#form1").validate(
debug: false,
.....
【讨论】:
【参考方案2】:我相信您的问题是表单提交无法正常工作,因为您遇到了 javascript 解析错误。您能否检查 Firebug 控制台以查看页面加载时是否发生任何错误。任何 javascript 错误都可能会破坏表单提交过程。
看看你之前的问题,我猜你可能没有包含验证插件,因为 validate 没有定义。此错误可能仍在发生,并且页面上的其余 javascript - 包括所有 ASP.NET 添加的 javascript 可能无法解析。
您有用于验证插件的脚本吗?它看起来像这样:
<script type="text/javascript" src="..../jquery.validate.js"></script>
【讨论】:
以上是关于提交按钮不会触发服务器端代码的主要内容,如果未能解决你的问题,请参考以下文章