[JSF/JS] mbv keyboard event een input type=button indrukken

Pagina: 1
Acties:

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Topicstarter
Ik wil dus met behulp van een toetsenbordcombinatie een input type=button kunnen indrukken. Dit werkt uitstekend bij linkjes:
HTML:
1
<a id="link1" href="http://www.google.com">link1</a>

JavaScript:
1
2
3
if (...) { // bepaalde toetsencombinatie ingedrukt
   document.getElementById('link1').onclick();
}


Maar het lukt me niet bij de buttons:
HTML:
1
<input type="button" id="button1" value="button1">

JavaScript:
1
2
3
4
5
if (...) { // bepaalde toetsencombinatie ingedrukt
   // document.getElementById('button1').onclick();
   // document.getElementById('button1').onpress();
   // document.getElementById('button1').onsubmit();
}
Allemaal geven ze aan dat de functie onbekend is bij het object. En nee, het is geen optie om de form te submitten met bijvoorbeeld document.getElementById('form1').submit(). Het is allemaal gegenereerde JSF code (waarvan de bovenstaande HTML dus slechts is vertaald), dus ik kan/moet echt alleen maar die ene button indrukken.

Enig idee hoe het wél kan?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Die button zal toch wel "onclick" een functie "myFunc" aanroepen? Waarom roep je dan niet rechtstreeks myFunc aan? :?
De button zoals je 'm er nu hebt staan is nogal loos en zou anders ook niets gedaan hebben.

[ Voor 35% gewijzigd door RobIII op 22-06-2006 17:58 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Borizz
  • Registratie: Maart 2005
  • Laatst online: 02-01 15:55
Misschien dat je het volgende kan proberen:
JavaScript:
1
document.getElementById('button1').click();

[ Voor 7% gewijzigd door Borizz op 22-06-2006 18:01 ]

If I can't fix it, it ain't broken.


  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Topicstarter
RobIII schreef op donderdag 22 juni 2006 @ 17:57:
Die button zal toch wel "onclick" een functie "myFunc" aanroepen? Waarom roep je dan niet rechtstreeks myFunc aan? :?
De button zoals je 'm er nu hebt staan is nogal loos en zou anders ook niets gedaan hebben.
Sja, dat is lastig te interpreteren :P Voor diegenen die JSF kennen:

Java Server Faces:
1
2
3
4
<h:form id="form1">
    <h:commandLink id="link1" action="#{MyBean.action1}">link1</h:commandLink>
    <h:commandButton id="button1" action="#{MyBean.action2}" value="button1" />
</h:form>

Ik wil dus mbv JS toetsencombo's kunnen afvangen om de bovenstaande gegenereerde linkjes en buttons te kunnen uitvoeren.

Bij de h:commandLink lukt dat prima met
JavaScript:
1
2
3
if (...) { // bepaalde toetsencombinatie ingedrukt
   document.getElementById('form1:link1').onclick();
}

[ Voor 24% gewijzigd door BalusC op 22-06-2006 18:05 ]


  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Topicstarter
Borizz schreef op donderdag 22 juni 2006 @ 18:01:
Misschien dat je het volgende kan proberen:
JavaScript:
1
document.getElementById('button1').click();
Werkt! Thanks O+

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Handige reference voor de volgende keer:
http://msdn.microsoft.com...ence_entry.asp?frame=true

Kies DHTML Objects -> Kies Input type=button (let op: niet "button") -> Kies methods ;)
Voila :Y)

[edit]
LOL @Pagina:
code:
1
2
3
<INPUT TYPE=button ID=btnEmergency VALUE="In case of emergency, 
push this button!"
    onClick="alert('Aaaaaaaggggghh!!!!')">

[ Voor 38% gewijzigd door RobIII op 22-06-2006 18:11 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Topicstarter
Ik had het beter kunnen weten, gelijk bookmarked :P

Wat verder ook vaag is, de click() werkt dus óók prima voor de a-element, echter wanneer ik het lokaal als plain HTML test, dan werkt de onclick() niet voor de a-element 8)7 Zal wel aan JSF-generated code liggen.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 08:39

crisp

Devver

Pixelated

click is een method, onclick is een eventhandler-property. onclick() werkt prima om een handler uit te voeren, maar is niet bedoelt voor de default actie ;)

Intentionally left blank


  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Topicstarter
Wazigheid, in plain HTML werkte de click() wel voor de a-element, maar in een JSF page (ik had thuis even niet de beschikking over een JSF testenvironment) werkte deze niet voor de h:commandLink element. De onclick() werkte weer wel in voor de JSF h:commandLink element. Voor de button werkte de click() wel in zowel plain HTML input type=button element als JSF h:commandButton element.

Maargoed, de gewenste acties werken nu iig wel :Y)

[ Voor 23% gewijzigd door BalusC op 23-06-2006 09:53 ]

Pagina: 1