我在我的网络应用程序中使用链接按钮,我的“复合控件”没有使用 ASP 面板(因此没有“默认按钮”属性,不是说它会起作用)。我的链接按钮当前的 href 设置为 'javascript:_doPostBack..'(asp 默认),但是为了启用我的自定义客户端验证脚本,我还在 'onclick' 属性中有代码。
典型按钮:
<div class="button orange o_lime right Normal">
<a onclick="if (!validateFormmainContent_Login()) return false;"
id="mainContent_Login_ctl09_mainContent_Login_btnSubmit" defaultB="loginForm"
href="javascript:__doPostBack('ctl00$mainContent$Login$ctl09$mainContent_Login_btnSubmit','')">
Submit
</a>
</div>
需要“默认按钮”操作的典型表单行
<div class='row' ID='mainContent_Login_ctl03'>
<label ID='mainContent_Login_ctl04'>Email/Username</label>
<input name="ctl00$mainContent$Login$txtAccount" type="text" id="mainContent_Login_txtAccount" class="lime validate[required]" defaultB="loginForm" />
</div>
我目前的代码尝试使这项工作:
<script type="javascript">
$('input[defaultB]').keypress(function (e) {
if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
$('a[defaultB=' + $(e.srcElement).attr('defaultB') + ']').click();
return false;
} else {
return true;
}
});
我当前尝试的解决方案为“defaultB”分配了一个值,该值与相应按钮中定义的“defaultB”值匹配,这样按键“13”(回车)应该启动“click”事件。但什么也没发生:(
我创建了一个 jsfiddle 来提供帮助,但它不适用于愚蠢的“找不到函数”异常。:(
http://jsfiddle.net/Ninjanoel/yQvKC/
我真的很想让这个工作而不必重新设计我的所有控件!任何人都可以帮忙吗?