FirehMedlem sedan jan. 2003173 inlägg
Hej.
Jag har använt mig av grejerna i denna tråd (länk). För att visa exakt hur jag har det så ligger detta i HEAD:
<script language="JavaScript">
<!--
var minPos=false;
document.onkeydown=function(){
minPos = document.selection.createRange();
}
function varEjag() {
minPos = document.selection.createRange();
}
function klistrain(objektet){
if(minPos){ minPos.text += objektet }
}
//-->
</script>
Jag har sedan ett antal knappar med siffrorna 0-9 samt knapp för backspace och clear. Dessa ser ut så här:
<input type="button" name="7" value="7" onclick="klistrain('7');" class="calc"><input type="button" name="8" value="8" onclick="klistrain('8');" class="calc"><input type="button" name="9" value="9" onclick="klistrain('9');" class="calc"><br/>
<input type="button" name="4" value="4" onclick="klistrain('4');" class="calc"><input type="button" name="5" value="5" onclick="klistrain('5');" class="calc"><input type="button" name="6" value="6" onclick="klistrain('6');" class="calc"><br/>
<input type="button" name="1" value="1" onclick="klistrain('1');" class="calc"><input type="button" name="2" value="2" onclick="klistrain('2');" class="calc"><input type="button" name="3" value="3" onclick="klistrain('3');" class="calc"><br/>
<input type="button" name="<" value="<" onclick="klistrain('backspace');" class="calc"><input type="button" name="0" value="0" onclick="klistrain('0');" class="calc"><input type="button" name="Clr" value="Clr" onclick="klistrain('clear');" class="calc"><br/>
Allt fungerar bra, men jag har inte hittat något sätt att få in ett backspace (radera sista tecknet) när jag trycker på <-knappen. Har heller inte kommit på hur jag rensar hela textfältet när jag trycker på Clr-knappen.
Någon som har några tips?
The_HulkMedlem sedan juni 20031 937 inlägg
tror inte du kan infoga en backspace utan du måste nog använda substr http://www.w3schools.com/jsref/jsref_substr.asp
vad heter fältet där du visar siffrorna?
function backspace()
{
obj = document.getElementById('fält_id');
obj.value = obj.value.substr(0, obj.value.length - 1);
}
för att rensa
function clear()
{
obj = document.getElementById('fält_id');
obj.value = '';
}
FirehMedlem sedan jan. 2003173 inlägg
Ska det alltså se ut så här?
<script language="JavaScript">
<!--
var minPos=false;
document.onkeydown=function(){
minPos = document.selection.createRange();
}
function varEjag() {
minPos = document.selection.createRange();
}
function klistrain(objektet){
if(minPos){ minPos.text += objektet }
}
function clear(){
obj = document.getElementById('fält_id');
obj.value = '';
}
//-->
</script>
Och knappen:
<input type="button" name="Clr" value="Clr" onclick="clear();" class="calc">
Det fungerar i vilket fall som helst inte :(
Måste man använda funktionerna innan för att veta vilket fält? Hur gör man i så fall?
Ang namnet på fältet, så är det två olika. Därför är det här "tangentbordet" så bra då det fungerar i flera olika fält. Eftersom det bara är lite siffror (max 4 per fält) som ska skrivas så räcker det nog med Clear-knappen. Skriver man fel får man börja om.
The_HulkMedlem sedan juni 20031 937 inlägg
du måste byta ut fält_id mot ID på den input-taggen som innehåller siffrorna (displayn).
Kan siffrorna man matar in komma i oliak fält?
FirehMedlem sedan jan. 2003173 inlägg
Jag får det ändå inte att fungera. Här kan du se och testa det.
Länk
The_HulkMedlem sedan juni 20031 937 inlägg
Ditt sätt fungerade inte alls i FireFox, denna fungerar för mig både i IE och FF.
jag hade gjort det på detta sättet
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>Knappar</title>
<script language="JavaScript">
<!--
var oField;
function fn_choose(obj)
{
oField = obj;
}
function fn_klistrain(num)
{
if(oField != null)
{
oField.value += num;
}
}
function fn_clear()
{
if(oField != null)
{
oField.value = '';
}
}
function fn_backspace()
{
if(oField != null)
{
oField.value = oField.value.substr(0, oField.value.length - 1);
}
}
//-->
</script>
<style type="text/css">
.knapp {
height: 40px;
width: 115px;
}
.calc {
height: 50px;
width: 50px;
}
.ruta1 {
height: 30px;
width: 85px;
font-size: 18px;
}
</style>
</head>
<body onload="fn_choose(document.getElementById('1'));">
<table width="500">
<tr>
<td width="200">
<form action="knappar.asp?Typ=1" method="post" name="Tal1">
<input type="text" name="Tal1" size="10" onclick="fn_choose(this);" onfocus="fn_choose(this);" tabindex="1" id="1" class="ruta"><br/>
<input type="submit" name="Knapp1" value="Knapp1" tabindex="2" class="knapp">
</form>
</td>
<td width="300" rowspan="2">
<input type="button" name="7" value="7" onclick="fn_klistrain('7');" class="calc"><input type="button" name="8" value="8" onclick="fn_klistrain('8');" class="calc"><input type="button" name="9" value="9" onclick="fn_klistrain('9');" class="calc"><br/>
<input type="button" name="4" value="4" onclick="fn_klistrain('4');" class="calc"><input type="button" name="5" value="5" onclick="fn_klistrain('5');" class="calc"><input type="button" name="6" value="6" onclick="fn_klistrain('6');" class="calc"><br/>
<input type="button" name="1" value="1" onclick="fn_klistrain('1');" class="calc"><input type="button" name="2" value="2" onclick="fn_klistrain('2');" class="calc"><input type="button" name="3" value="3" onclick="fn_klistrain('3');" class="calc"><br/>
<input type="button" name="<" value="<" onclick="fn_backspace();" class="calc"><input type="button" name="0" value="0" onclick="fn_klistrain('0');" class="calc"><input type="button" name="Clr" value="Clr" onclick="fn_clear();" class="calc"><br/>
</td>
</tr>
<tr>
<td width="200">
<form action="knappar.asp?Typ=2" method="post" name="Tal2">
<input type="text" name="Tal2" size="10" onclick="fn_choose(this);" onfocus="fn_choose(this);" tabindex="3" id="2" class="ruta"><br/>
<input type="submit" name="Knapp2" value="Knapp2" tabindex="4" class="knapp">
</form>
</td>
</tr>
</table>
</body>
</html>
Hoppas detta inte är någon skoluppgift.
Kanske skulle försökt förklara istället för att ge dig en lösning.
FirehMedlem sedan jan. 2003173 inlägg
Tack för ditt svar och förslag.
Det fungerar alldeles ypperligt bra, även med backspacefunktionen. FireFox är för min del inte nödvändigt till just det jag ska ha det till nu, då det endast är en grej som kommer att köras på en kassadator som kräver IE av andra skäl. Men kan ju vara bra för andra att veta om man söker här på wF.