Asp:RadioButtonList即使在客户端验证失败的情况下仍然会发布回服务器
Asp:RadioButtonList still posts back to server even when client validation fails?
这个查询与我昨天问的这个查询有关。我在我的asp.net页面上有一个单选按钮列表,定义如下:
<asp:RadioButtonList ID="rdlSortBy" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow" AutoPostBack="True" >
<asp:ListItem Selected="True">Name</asp:ListItem>
<asp:ListItem>Staff No</asp:ListItem>
</asp:RadioButtonList>
在客户端,我正在进行以下验证:
rdlSortBy.Attributes("onclick") = "javascript:return prepareSave() && prepareSearch();"
问题是Javascript验证按预期运行。会显示一条消息,我希望在用户保存更改之前一直保留在页面上,相反,页面会被退回,实际上我正在丢失未保存的更改。
可能出了什么问题?
我解决了这个问题,问题是我将RadioButtonList的"onclick"附加到了各个单选按钮上。
这是修复:
rdlSortBy.Items(0).Attributes("onclick") = "javascript:return isDirtied() && prepareSearch();"
rdlSortBy.Items(1).Attributes("onclick") = "javascript:return isDirtied() && prepareSearch();"
正在运行用于"验证"的OnClick
代码,然后正在运行将控件本身注入的表单发布回的代码。
您需要拦截PostBack进程,并在它向客户端发布表单之前停止它。最好的方法是使用CustomValidator
,特别是"ClientValidationFunction"属性。这将允许您的JavaScript发出信号,表明由于验证错误,不应进行回发。
相关文章:
- AngularJS可以在没有任何服务器端技术的情况下将文件保存/写入服务器
- 跨来源请求被阻止-如何在没有访问服务器的情况下绕过它
- 如何在不使用处理程序的情况下使用ajax将文件从客户端发送到服务器端
- 是否可以在不使用服务器端脚本或编程的情况下在网页中进行实时视频流
- 如何在没有JQuery的情况下,通过对服务器的基本ajax调用,根据浏览器上的用户活动保持服务器会话活动
- 在不重新加载页面的情况下,从JSP(服务器端)b设置一个JavaScript变量
- typeaheadjs:如何在不使用缓存数据的情况下调用服务器
- 只使用jquery即可在没有服务器的情况下与两个页面进行即时通信
- 如何在没有Ajax的情况下将blob存储在表单中,并在单击提交时将其发送到服务器
- Nodejs-websocket:如何在没有服务器响应的情况下连续发送客户端消息
- 如何在没有web服务器的情况下将变量数据从Python传输到Javascript
- 在没有服务器端脚本的情况下跨多个页面链接导航栏
- 在不使用集合的情况下将服务器端计算返回到客户端
- 在没有插件的情况下验证验证码?-- 跨服务器开机自检
- 在没有 Web 服务器的情况下使用 Javascript 加载本地文件
- 在没有服务器根访问权限的情况下构建聊天脚本的有效方法是什么
- 反应:在没有本地服务器的情况下加载文件的跨源请求
- 如何在没有服务器端的情况下监视用户操作
- 如何在没有第三方库的情况下在服务器上以编程方式生成 Html
- 在不使用JS中的任何服务器的情况下读取文本文件