Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LinkButton作为默认按钮_C#_Jquery_Asp.net - Fatal编程技术网

C# LinkButton作为默认按钮

C# LinkButton作为默认按钮,c#,jquery,asp.net,C#,Jquery,Asp.net,我在我的web应用程序中使用LinkButton,我的“复合控件”不使用ASP面板(因此没有“DefaultButton”属性,这不起作用)。我的链接按钮当前将href设置为“javascript:_doPostBack..”(asp默认设置),但为了启用自定义客户端验证脚本,我还将代码设置为“onclick”属性 典型按钮: <div class="button orange o_lime right Normal"> <a onclick="if (!validat

我在我的web应用程序中使用LinkButton,我的“复合控件”不使用ASP面板(因此没有“DefaultButton”属性,这不起作用)。我的链接按钮当前将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(&#39;ctl00$mainContent$Login$ctl09$mainContent_Login_btnSubmit&#39;,&#39;&#39;)">
        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;
    }
});

$('input[defaultB]')。按键(功能(e){
如果((e.which&&e.which==13)| |(e.keyCode&&e.keyCode==13)){
$('a[defaultB='+$(e.srcElement).attr('defaultB'+'])。单击();
返回false;
}否则{
返回true;
}
});

我当前尝试的解决方案为“defaultB”分配一个值,该值与相应按钮中定义的“defaultB”值相匹配,因此按键“13”(enter)应启动“单击”事件。但什么都没有发生:(

我创建了一个JSFIDLE来提供帮助,但它不能处理愚蠢的“找不到函数”异常


我真的很想在不返工所有控件的情况下实现此功能!有人能帮忙吗?

我已更新了代码,请参见:

http://jsfiddle.net/yQvKC/5/
我相信你缺少的是:$(这个)

我用

然后
$('a[defaultB='+$(e.srcElement).attr('defaultB'+'])。click();

问题是,您将按键事件绑定到输入按钮。因此,如果用户按下按钮,然后按下enter,将触发事件。您应该将其绑定到表单

我已经更新了代码:

您可能需要选择默认按钮(根据asp.net生成的难看html),但我希望这会有所帮助

$('input[defaultB]').keypress(function (e) {
    if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {  
         alert('enter pressed');    
        var _el = $('a[defaultB='+ $(e.srcElement).attr('defaultB') + ']');
        eval(_el.attr('onclick'));
        eval(_el.attr('href'));
        return false;
    } else {
        return true;
    }
});


在这种情况下,我使用“eval”是否有危险?在属性上使用“eval”似乎对我有好处,但我想知道这样做是否会带来太大的安全风险?

谢谢你的回答。但这仍然没有正确地执行“按钮单击”,你的更改没有意义,你的小提琴也无法演示它的工作如果正确,我希望在多个位置向所有Fire发送警报消息谢谢您的回答。但这仍然没有正确执行“按钮单击”。因为这是ASP,我需要消息“正在进行postbacl”(代码输入错误)看起来,它不是,因此它仍然不起作用。而且,在表单上这样做是不合适的,因为我需要编辑的文本框中“defaultB”中的值,这样我就可以使用该“defaultB”值找到要单击的适当按钮。此外,将代码从“onclick”中移出到$(id)。单击()不适合我的情况。感谢迄今为止的两个答案,只是说我在小提琴的不同阶段嵌入了一些“警报”,我基本上需要它在我满意它正常工作之前点击所有警报。如果“u doPostBack”中的消息总是无法访问,我想要一个很好的理由。谢谢大家。我基本上是在尝试ing设计了一个解决方案,在该解决方案中,我可以向文本字段和作为按钮的“a”标记添加一个属性(“在本例中为defaultB”),并使其自动起作用,就像用鼠标单击了ASP linkbutton一样(启动href javascript和onclick事件代码)
$('input[defaultB]').keypress(function (e) {
    if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {  
         alert('enter pressed');    
        var _el = $('a[defaultB='+ $(e.srcElement).attr('defaultB') + ']');
        eval(_el.attr('onclick'));
        eval(_el.attr('href'));
        return false;
    } else {
        return true;
    }
});