ptr_lksMedlem sedan juni 2005584 inlägg Hej,
vet itne om jag börjar bli blind, men hittar inte svaret...
Jag undrar ifall det går att göra så att formulär postas även då enter/retur klickas och inte bara med knappen
<table border="0" width="100%">
<tr>
<td width="50%">
<form method="POST" action="skriv_mess.asp">
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="5%"><font face="Arial" size="2">Chatt: </font></td>
<td width="15%"><textarea name="chattText" cols="60" rows="5"></textarea>
</td>
<td width="80%"><input type="submit" value="Chatta" name="btnSend"></td>
</tr>
</table>
</form></td>
<td width="50%" align="right">
<form method="POST" action="loggut.asp" target="_top">
<div align="center">
<input type="submit" value="Lämna" name="btnLogout">
</div>
</form> </td>
</tr>
</table>
Peter SMedlem sedan dec. 20025 483 inlägg Frågan är vilket formulär som skall skickas vid entertryckning; du har ju två. Om markören befinner sig i <textarea>n skall inte formuläret postas vid entertryck. Är någon av knapparna i fokus, skickas den knappens formulär.
ptr_lksMedlem sedan juni 2005584 inlägg
Peter S skrev:
Frågan är vilket formulär som skall skickas vid entertryckning; du har ju två. Om markören befinner sig i <textarea>n skall inte formuläret postas vid entertryck. Är någon av knapparna i fokus, skickas den knappens formulär.
men jag vill skicka - går inte detta att göra??
Peter SMedlem sedan dec. 20025 483 inlägg Vilket som kan du använda koden nedan.
document.onkeypress = function(e){
var node = null;
if (window.event){
node = window.event.srcElement;
} else if (e){
node = e.target;
}
if (node && node != document.forms[1].elements[0]){
document.forms[0].submit();
}
}
Ovan har jag antagit det första formuläret. Skulle det vara tvärtom får du hojta till. :)
ptr_lksMedlem sedan juni 2005584 inlägg jag menade där
<textarea name="chattText" cols="60" rows="5"></textarea>
Funkar inte, dvs går inte att skriva ngt i textrutan :(
Bifogar hela koden...
Peter SMedlem sedan dec. 20025 483 inlägg Jag glömde uppenbarligen halva koden...
document.onkeypress = function(e){
var node = null;
if (e = window.event){
node = e.srcElement;
} else if (e){
node = e.target;
}
if (e.keyCode == 13 && node && node != document.forms[0].elements[0] && node != document.forms[1].elements[0]){
document.forms[0].submit();
}
}
ptr_lksMedlem sedan juni 2005584 inlägg Tack Peter :birp
Orkar du förklara hur du tänkte? Så jag lär mig också? Eller var jag kan hitta en bra "tutte"?
Peter SMedlem sedan dec. 20025 483 inlägg Jag tänkte som så att:
- Fånga upp alla tangenttryckningar
- Om tangenten som trycktes ned var <enter> (keyCode = 13) och
- <textarea>n inte är i fokus
- Knappen i det andra formuläret inte är i fokus
Skicka iväg det första formuläret
När det gäller material, har mozilla.org en hel del. :)
ptr_lksMedlem sedan juni 2005584 inlägg men kan du ytterligare förklara dessa rader
1:document.onkeypress = function(e){
2: e = e || window.event;
3: var node = null;
4: if (window.event){
5: node = e.srcElement;
}
7: else if (e){
8: node = e.target;
}
tack för ordet
/ptr
Peter SMedlem sedan dec. 20025 483 inlägg Jag glömde uppenbarligen ytterligare en sak, så ovanstående inlägg är uppdaterat. Dessutom förenklade jag saker och ting en smula. Här är förklaringen:
document.onkeypress = function(e){
// variabel som skall hålla en referens till det objekt som är i fokus vid entertryckning
var node = null;
if (e = window.event){ // om window.event stödjs av webbläsaren tilldelas [i]e[/i] en referens till det objektet (för IE och Opera t.ex)
node = e.srcElement; // det element som är i fokus då entertryckningen skedde
} else if (e){ // annars använd det medskickade argumentet (för ff t.ex)
node = e.target; // samma som ovan
}
if (e.keyCode == 13 && node && node != document.forms[0].elements[0] && node != document.forms[1].elements[0]){
document.forms[0].submit();
}
}
ptr_lksMedlem sedan juni 2005584 inlägg så
function(e)
står för enter-tryckning?
men variabeln node då?
Peter SMedlem sedan dec. 20025 483 inlägg Nej, på den första raden registrerar vi onkeypress-händelsen för dokumentet. Den tillåter oss att fånga upp entertryckningar.
Som jag skrev ovan sparas i node en referens till det element som är i fokus vid knapptryckningen.
:)