W
Wumbsie
Guten Morgen,
seit Montag beschäftige ich mich ausführlicher mit JS. Mein Skript hatte auch wunderbar funktioniert ... bis ich es per GM installieren wollte. Da hat natürlich nichts mehr geklappt.
Das Ziel ist es in einem bestimmten Textfeld das Komma in den Punkt umzuwandeln sowie nur Ziffern und ein paar Steuerelemente zu erlauben.
Hier einmal mein erstes Skript:
// ==UserScript==
// @name Test1
// ==/UserScript==
<html>
<head>
<script type="text/javascript">
<!--
// Diese Funktion wandelt Komma in Punkt um
function replace(id) {
with(id) {
var oldvalue = value;
var newvalue = oldvalue.replace(/,/g,".");
value = newvalue;
}
}
//-->
</script>
</head>
<script type="text/javascript">
<!--
// Diese Funktion erlaubt nur Ziffern und 4 Steuerelemente
function pruefe(event) {
var keycode;
if (window.event) {
keycode = window.event.keycode;
} else if (event) {
keycode = event.which;
} else {
return true;
}
if (47 < keycode) {
if (keycode < 58) {
return true;
}
}
var keycodeascii = new Array(0,8,44,46);
while (keycodeascii.length > 0) {
if (keycode == keycodeascii.pop()) {
return true;
}
}
return false;
}
//-->
</script>
// Hier habe ich die Felder erstellt, in welchen in die Funktionen erfolgreich getestet habe
Bla: <input type="text" value="" name="hello" id="test1" size="30" onChange="replace(test1)" onkeypress="return pruefe(event)"/>
Bli : <input type="text" value="" name="hello" id="test2" size="30" onChange="replace(test2)" onkeypress="return pruefe(event)"/>
Blub: <input type="text" value="" name="hello" id="test3" size="30" onChange="replace(test3)" onkeypress="return pruefe(event)" />
</body>
</html>
Hier die replace-Funktion für Greasemonkey, welche auch bestens funktioert. Vielleicht ist sie etwas umständlich geschrieben...
// ==UserScript==
// @name Replace
// ==/UserScript==
(function() {
surrogate = function() {
var oldValue = document.getElementById('test1').value;
var newValue = oldValue.replace(/,/, ".");
document.getElementById('test1').value = newValue;
var oldValue = document.getElementById('test2').value;
var newValue = oldValue.replace(/,/, ".");
document.getElementById('test2').value = newValue;
var oldValue = document.getElementById('test3').value;
var newValue = oldValue.replace(/,/, ".");
document.getElementById('field-abgerechnet').value = newValue
}
var oldValueField= document.getElementById('test1');
oldValueField.addEventListener("blur", surrogate, false);
var oldValueField= document.getElementById('test2');
oldValueField.addEventListener("blur", surrogate, false);
var oldValueField= document.getElementById('test3');
oldValueField.addEventListener("blur", surrogate, false);
})();
Allerdings hänge ich total bei der check-Funktion, welche momentan noch so aussieht:
// ==UserScript==
// @name Check
// ==/UserScript==
(function() {
check = function (event) {
var keycode = document.getElementById('test1').value;
if (window.event) {
keycode = window.event.keycode;
} else if (event) {
keycode = event.which;
} else {
return true;
}
if (47 < keycode) {
if (keycode < 58) {
return true;
}
}
var keycodeascii = new Array(0,8,44,46);
while (keycodeascii.length > 0) {
if (keycode == keycodeascii.pop()) {
return true;
}
}
return false;
}
var keycodeField= document.getElementById('test1');
keycodeField.addEventListener("load", check, false);
})()
Hier sollen eigentlich nur Ziffern und die 4 Steuerlemente in dem Feld test1 erlaubt werden.
Kann mir vielleicht irgendjemand Tipps, Denkanstöße, etc. geben?
Bin auch für Kritik für die funktionierenden Skripts offen und für jede Hilfestellung dankbar.
Vielleicht wird's ja was ;-)
Danke schonmal im Voraus und ganz liebe Grüße,
Wumbsie
seit Montag beschäftige ich mich ausführlicher mit JS. Mein Skript hatte auch wunderbar funktioniert ... bis ich es per GM installieren wollte. Da hat natürlich nichts mehr geklappt.
Das Ziel ist es in einem bestimmten Textfeld das Komma in den Punkt umzuwandeln sowie nur Ziffern und ein paar Steuerelemente zu erlauben.
Hier einmal mein erstes Skript:
// ==UserScript==
// @name Test1
// ==/UserScript==
<html>
<head>
<script type="text/javascript">
<!--
// Diese Funktion wandelt Komma in Punkt um
function replace(id) {
with(id) {
var oldvalue = value;
var newvalue = oldvalue.replace(/,/g,".");
value = newvalue;
}
}
//-->
</script>
</head>
<script type="text/javascript">
<!--
// Diese Funktion erlaubt nur Ziffern und 4 Steuerelemente
function pruefe(event) {
var keycode;
if (window.event) {
keycode = window.event.keycode;
} else if (event) {
keycode = event.which;
} else {
return true;
}
if (47 < keycode) {
if (keycode < 58) {
return true;
}
}
var keycodeascii = new Array(0,8,44,46);
while (keycodeascii.length > 0) {
if (keycode == keycodeascii.pop()) {
return true;
}
}
return false;
}
//-->
</script>
// Hier habe ich die Felder erstellt, in welchen in die Funktionen erfolgreich getestet habe
Bla: <input type="text" value="" name="hello" id="test1" size="30" onChange="replace(test1)" onkeypress="return pruefe(event)"/>
Bli : <input type="text" value="" name="hello" id="test2" size="30" onChange="replace(test2)" onkeypress="return pruefe(event)"/>
Blub: <input type="text" value="" name="hello" id="test3" size="30" onChange="replace(test3)" onkeypress="return pruefe(event)" />
</body>
</html>
Hier die replace-Funktion für Greasemonkey, welche auch bestens funktioert. Vielleicht ist sie etwas umständlich geschrieben...
// ==UserScript==
// @name Replace
// ==/UserScript==
(function() {
surrogate = function() {
var oldValue = document.getElementById('test1').value;
var newValue = oldValue.replace(/,/, ".");
document.getElementById('test1').value = newValue;
var oldValue = document.getElementById('test2').value;
var newValue = oldValue.replace(/,/, ".");
document.getElementById('test2').value = newValue;
var oldValue = document.getElementById('test3').value;
var newValue = oldValue.replace(/,/, ".");
document.getElementById('field-abgerechnet').value = newValue
}
var oldValueField= document.getElementById('test1');
oldValueField.addEventListener("blur", surrogate, false);
var oldValueField= document.getElementById('test2');
oldValueField.addEventListener("blur", surrogate, false);
var oldValueField= document.getElementById('test3');
oldValueField.addEventListener("blur", surrogate, false);
})();
Allerdings hänge ich total bei der check-Funktion, welche momentan noch so aussieht:
// ==UserScript==
// @name Check
// ==/UserScript==
(function() {
check = function (event) {
var keycode = document.getElementById('test1').value;
if (window.event) {
keycode = window.event.keycode;
} else if (event) {
keycode = event.which;
} else {
return true;
}
if (47 < keycode) {
if (keycode < 58) {
return true;
}
}
var keycodeascii = new Array(0,8,44,46);
while (keycodeascii.length > 0) {
if (keycode == keycodeascii.pop()) {
return true;
}
}
return false;
}
var keycodeField= document.getElementById('test1');
keycodeField.addEventListener("load", check, false);
})()
Hier sollen eigentlich nur Ziffern und die 4 Steuerlemente in dem Feld test1 erlaubt werden.
Kann mir vielleicht irgendjemand Tipps, Denkanstöße, etc. geben?
Bin auch für Kritik für die funktionierenden Skripts offen und für jede Hilfestellung dankbar.
Vielleicht wird's ja was ;-)
Danke schonmal im Voraus und ganz liebe Grüße,
Wumbsie