si6*_*618 6 asp.net validation
我继承了一些使用div将页面分成标签的代码.在第一页上有许多必需的字段和正则表达式验证器.问题是用户可以切换到另一个选项卡,触发回发并使第一页上的验证器失败,使事情陷入混乱.
我希望能够做的是在用户选择另一个选项卡时在第一页上执行验证,从而防止它们移动到新选项卡,直到第一页有效.
<ul>
<li><a href="#tab1">Tab 1</a> </li>
<li><a href="#tab2" onclick="return isValid();">Tab 2</a></li>
<li><a href="#tab3" onclick="return isValid();">Tab 3</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
哪里isValid需要关闭验证器.
谢谢!
更新: codeka提供的答案非常接近,但是,因为我需要提供href和onclick属性(以避免弄乱显示),即使验证失败,选项卡(锚)仍然会发生.这就是我解决这个问题的方法.免责声明:未来的丑陋代码
<ul>
<li><a id="tab1Tab" href="#tab1" style="display:none"/><a onclick="isValid('tab1');">Tab 1</a></li>
<li><a id="tab2Tab" href="#tab2" style="display:none"/><a onclick="isValid('tab2');">Tab 2</a></li>
<li><a id="tab3Tab" href="#tab3" style="display:none"/><a onclick="isValid('tab3');">Tab 3</a></li>
</ul>
function isValid(tab) {
var valid = Page_ClientValidate();
var tabId = (valid ? tab : "tab1") + "Tab";
$("#" + tabId).click();
}
Run Code Online (Sandbox Code Playgroud)
注意使用jQuery实现与click事件的跨浏览器兼容性.这只有在其他选项卡上没有验证器的情况下才有效,根据Thomas的回答,isValid如果有任何补充,我需要使用验证组和额外的逻辑.
ASP.NET 创建一个全局 JavaScript 函数Page_ClientValidate,您可以调用该函数来触发验证器:
function isValid() {
return Page_ClientValidate();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5942 次 |
| 最近记录: |