2016-05-13 8 views
0

Ich habe ein MVC-Projekt mit vielen Listenansichten. Ich möchte, dass der Fokus auf das erste Element in der Listenansicht gesetzt wird, so dass ein Benutzer einfach Enter drücken kann, um das Element zu öffnen? oder benutzen Sie die Pfeiltasten, um sich in der Liste nach oben oder nach unten zu bewegen, und drücken Sie Enter.In MVC Fokus auf erste Listenelement in ListView setzen

Ich mache schon etwas ähnliches für Dateneingabe Ansichten, wo ich auf die erste Textbox oder Combobox konzentrieren. Dies ist der Code, den ich dafür verwenden:

$('.focus :input').focus(); 

Dann meiner Ansicht nach:

<div class="col-md-3 focus"> 
    @Html.DropDownList("CategoryId", null, "Select Category", htmlAttributes: new { @class = "form-control" }) 
</div> 

, die perfekt funktioniert, so jetzt will ich es mit meiner Liste Ansichten zu tun. Das ist, was ich versucht:

$('.focus tr:first').focus(); 

und meiner Ansicht nach:

<tr class="focus"> 

und leider, die nicht funktioniert. Also habe ich eine Suche gemacht und ich kann keine Antworten für MVC finden, ich kann Antworten für Android, Metro-Apps usw. finden, aber nichts für MVC.

Antwort

0

https://api.jquery.com/focus/

focus() ist entworfen, um auf eine Teilmenge von Elementen zu arbeiten, wie Formulareingaben und Anker.

Es funktioniert nicht für Standard-Auszeichnungselemente wie Tabellenzeilen oder divs usw.

Was Sie vielleicht tun können, ist konzentrieren einen Anker in einem Listenelement Element

<li><a href="#">List Item<a></li> und stellen Sie dann zu verwenden, auf der Anker ... $('li a').focus();

+0

Ich will nicht, dass es nur so aussieht, wie es Fokus hat. Ich möchte, dass es den Fokus hat, damit ein Benutzer den Datensatz durch Drücken von Enter eingeben kann. – djblois

+0

html Elemente wie Tabellenzeilen haben nicht das Konzept, Fokus zu haben. d. h., Sie können nicht zu einer Tabellenzeile wechseln. Sie können nur Formulareingaben, Selects, Anker und Schaltflächen fokussieren. Was Sie möglicherweise tun können, ist einen Anker innerhalb eines Listenelements zu verwenden '

  • Listenelement
  • ' und dann den Fokus auf den Anker setzen ... '$ ('li a'). Focus();' –

    0

    Hier ist, was ich tue, um das erste Element zu setzen. Ich habe versucht, es für Ihre html zu ändern.

    $('[selector for your dropdown]').focus(); 
    $('[selector for your dropdown]').val($('[selector for your dropdown] option:first').val()).change(); 
    
    +0

    fran, ich versuche nichts mit meinem Dropdown zu tun. Ich habe das nur als Beispiel benutzt. Ich spreche von einer Tabelle, die ich habe, und ich möchte den ersten Datensatz in der Tabelle auswählen. Vielen Dank für Ihre Hilfe. – djblois

    Verwandte Themen