使用jQuery的validation后,无法引发asp.net按钮的事件处理程序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用jQuery的validation后,无法引发asp.net按钮的事件处理程序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3014字,纯文字阅读大概需要5分钟。
内容图文
![使用jQuery的validation后,无法引发asp.net按钮的事件处理程序](/upload/InfoBanner/zyjiaocheng/797/0636b41e22f04ad191976cca12debe07.jpg)
使用JQuery进行表单验证,aspx部分代码如下:
![使用jQuery的validation后,无法引发asp.net按钮的事件处理程序 - 文章图片](/upload/getfiles/0001/2021/5/5/20210505103932584.jpg)
![使用jQuery的validation后,无法引发asp.net按钮的事件处理程序 - 文章图片](/upload/getfiles/0001/2021/5/5/20210505103932607.jpg)
<form?id="InfoTableFrom"?runat="server">
????<div>
????????<table?width="100%">
????????????<tr>
????????????????<td>
<!--此部分程序生成-->
<div?id="InfoTableDiv">
<div?id="InfoTableHead">市场调研表</div>
<div?id="InfoTableDescript">市场调查</div>
<div?id="InfoTableRow">
<div?id="InfoTableTitleCol">对应市场</div>
<div?id="InfoTableCtrlCol"><input?name="a_Varchar_changc"?type="text"?id="a_Varchar_changc"?maxlength="50"?/><font?color="red"><b>*</b></font></div>
</div>
<div?id="InfoTableRow">
<div?id="InfoTableTitleCol">所在地区</div>
<div?id="InfoTableCtrlCol"><input?name="a_Varchar_diqu"?type="text"?id="a_Varchar_diqu"?maxlength="50"?/></div>
</div>
<div?id="InfoTableRow">
<div?id="InfoTableTitleCol">全年销量</div>
<div?id="InfoTableCtrlCol"><input?name="a_int_xiaoliang"?type="text"?id="a_int_xiaoliang"?style="width:50px;"?/></div>
</div>
<div?id="InfoTableRow">
<div?id="InfoTableTitleCol">市场份额</div>
<div?id="InfoTableCtrlCol"><input?name="a_float_fe"?type="text"?id="a_float_fe"?style="width:50px;"?/></div>
</div>
<div?id="InfoTableRow">
<div?id="InfoTableTitleCol">当前等级</div>
</div>
<div?id="InfoTableRow">
<div?id="InfoTableTitleCol">22</div>
<div?id="InfoTableCtrlCol"><input?name="a_Varchar_222"?type="text"?id="a_Varchar_222"?maxlength="50"?style="width:22px;"?/>
<div?class="lblDescript">222</div></div>
</div>
</div>
<script?type="text/javascript">
$(function(){
$.validator.setDefaults({
???submitHandler:?function(form)?{?form.submit();?}
});
jQuery.validator.addMethod("isInt",?function(value,?element)?{?
?????return?this.optional(element)?||?/^\d*$/.test(value);?
},?"?数据类型不正确,只能填写整数");
jQuery.validator.addMethod("isFloat",?function(value,?element)?{?
?????return?this.optional(element)?||?/^\d+\.\d{0,7}$/.test(value);?
},?"?数据类型不正确,必须填写小数格式如:1.0");
$(InfoTableFrom).validate({
rules:{
???"a_Varchar_changc"?:?{?required:?true}
,???"a_int_xiaoliang"?:?{isInt?:?true}
,???"a_float_fe"?:?{isFloat?:?true}
},
messages:{
????"a_Varchar_changc"?:?{?required:?"?请填写市场"}
}
});
});
</script>
<!--程序生成代码结束-->
????????????????</td>
????????????</tr>
????????????<tr>
????????????????<td?align="center">
????????????????<asp:Button?ID="btnOK"?runat="server"?onclick="btnOK_Click"?Text="?确定?"?/>
????????????????
????????????????????<input?id="Button1"?type="button"?onclick="javascript:self.close()"?value="?关闭?"?/></td>
????????????</tr>
????????</table>
????</div>
????</form>
以上代码运行后,当我们点击“确定”按钮,页面发生PostBack,但是并没有引发“确定”按钮的事件处理程序。我去掉上面的JQuery的代码,事件就可以引发。
经过分析得出原因:
JQuery的Form Validate plugin,在实际提交时并不提交Input type为button的值,所以asp.net无法定位事件处理程序。
解决办法很简单,就是在Form里再放一个hidden input
<input type="hidden" name="btnOK" value=" 确定 " />
注意这个name一定要跟要引发事件的按钮的最终客户端name相同。
再点“确定”程序可以按预期的正常运行。
转载于:https://www.cnblogs.com/baoposhou/archive/2008/12/11/1352575.html
内容总结
以上是互联网集市为您收集整理的使用jQuery的validation后,无法引发asp.net按钮的事件处理程序全部内容,希望文章能够帮你解决使用jQuery的validation后,无法引发asp.net按钮的事件处理程序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。