2 Stimmen

jQuery-Ersatz für Standard-Button oder Link

Wie jeder weiß, funktioniert diese Standardschaltfläche nicht in FF, sondern nur in IE. Ich habe versucht, sie in den Tag oder in die zu setzen und es funktioniert nicht. Ich habe ein js-Skript gefunden, um dieses Problem zu beheben, aber aus irgendeinem Grund ist es nicht für mich arbeiten. Dieses Skript für einen Submit-Button, ich brauche, um es für einen LinkButton zu verwenden, die die gleiche sein sollte.

Link:

  <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;
        }
    });
});

Ich weiß, dass ich die ursprüngliche Funktion überschreiben kann " WebForm_FireDefaultButton " in Diese Beitrag, aber ich wollte diesen wirklich zum Laufen bringen.

Vielen Dank im Voraus!!!

2voto

Larry Flewwelling Punkte 158

Die Antwort auf die Frage, wie man Linkbuttons repariert, habe ich hier gefunden: 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;
      }
  });
});

1voto

Oliver Punkte 8783

Inspiriert durch Larry Flewelling's Antwort oder vielmehr Michael Cindric's Ich habe eine modifizierte und aktualisierte Version dieses Javascript-Snippets entwickelt. Ausführlichere Informationen über das Warum und Wie habe ich dokumentiert in dieser Blogbeitrag Aber lassen Sie mich die wichtigsten Änderungen zusammenfassen:

  1. Arbeitet mit dynamisch geladenen Inhalten
  2. Funktioniert mit einer beliebigen Anzahl von "Formularen" auf derselben Seite

Und hier ist sie:

$('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;
      }
    }
  });

0voto

Chris Brandsma Punkte 11525

Sie könnten Ihren Selektor erweitern.

$("#pnl > input")

Dadurch wird der Eingabeklick für alle Steuerelemente im Bedienfeld erfasst.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X