2009-06-30 110 views
2

衆所周知,該默認按鈕不適用於FF,僅適用於IE。我試過把標籤放在裏面或者它不起作用。我找到了一個js腳本來解決這個問題,但由於某種原因,它不適合我。這個提交按鈕的腳本,我需要使用它的LinkBut​​ton,這應該是相同的。jQuery替換默認按鈕或鏈接

鏈接:

<div id="pnl"> 
    <a id="ctl00_cphMain_lbLogin" title="Click Here to LogIn" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$cphMain$lbLogin&quot;, &quot;&quot;, true, &quot;Login1&quot;, &quot;&quot;, false, true))">Log In</a> 
    <input name="ctl00$cphMain$UserName" type="text" id="ctl00_cphMain_UserName" /> 
    <input name="ctl00$cphMain$UserName" type="text" id="ctl00_cphMain_UserName1" /> 
    </div> 

<script> 

$(document).ready(function() { 
    $("#pnl").keypress(function(e) { 
     if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) { 
      $("a[id$='_lbLogin']").click(); 
      return true; 
     } 
    }); 
}); 

我知道,我可以覆蓋原有的功能「WebForm_FireDefaultButton」 在This職位,但我真的很想得到這個工作。

Thanx提前!!!

回答

2

我找到了答案,在這裏固定了LinkBut​​ton:http://www.sentia.com.au/2009/03/fixing-the-enter-key-in-aspnet-with-jquery/

$(document).ready(function(){ 
    var $btn = $('.form_submit'); 
    var $form = $btn.parents('.form'); 

    $form.keypress(function(e){ 
     if (e.which == 13 && e.target.type != 'textarea') { 
      if ($btn[0].type == 'submit') 
       $btn[0].click(); 
      else 
       eval($btn[0].href); 
      return false; 
     } 
    }); 
}); 
+0

拉里,這工作。謝謝。 – pyccki 2010-09-14 14:15:10

0

您可以展開您的選擇器。

$("#pnl > input") 

然後,它會捕獲面板中所有控件的輸入點擊。

+0

看起來不錯,但如果some1凸顯在此面板/格,然後按ENTER鍵文字? – pyccki 2009-06-30 17:04:49

1

通過Larry Flewwelling's answer或者說Michael Cindric's啓發,我想出了JavaScript代碼的修改和更新的版本。我在案爲什麼和如何在this blog post更詳細的信息,但讓我總結的重要變化:

  1. 與動態加載的內容
  2. 工程與同一頁面上的任何數量的「形式」工程

這裏,它是:

$('body') 
    .off('keypress.enter') 
    .on('keypress.enter', function (e) { 
    if (e.which == 13 && e.target.type != 'textarea') { 
     var $btn = $(e.target).closest('.jq-form').find('.jq-form-submit'); 
     if ($btn.length > 0) { 
     if ($btn[0].type == 'submit') { 
      $btn[0].click(); 
     } 
     else { 
      eval($btn[0].href); 
     } 
     return false; 
     } 
    } 
    });