|
|
|
Javascript - Regulärer Ausdruck
|
Hallo,
ich habs schon im Gehirnsalat versucht, aber dort leider keine Antwort gekriegt die funktioniert hat (womit ich nicht die Fähigkeiten der dort postenden Leute in Frage stellen möchte ), aber es geht nach wie vor um folgendes Script:
Ich hab ein Bilderupload-Script und möchte, wenn man das Bild hochladen, per Javascript das Eingabefeld in dem der Pfad zum Bild steht überprüfen lassen, ob da auch wirklich ein Bild drin ist.
Momentan siehts so aus:
|
PHP: |
<script type="text/javascript"><!--
function chkft() {
var imgs = document.getElementById('image');
var match = /.+\.(jpg|gif|png|jpeg|bmp)/i;
if(!match.test(imgs.value)) {
alert('Illegal filetype given, allowed: jpg, jpeg, png, gif, bmp.');
}
--></script>
|
|
Alternativ dieses:
|
PHP: |
<script type="text/javascript"><!--
function chkft() {
var imgs = document.getElementById('image');
if (!imgs.value.match(/.+\.(jpg|gif|png|jpeg|bmp)/i) {
alert('Illegal filetype given, allowed: jpg, jpeg, png, gif, bmp.');
}
--></script>
|
|
Jeweils das Script im Header und bei im <form> -Tag ein onSubmit="chkft();" eingetragen.
Leider funktioniert keine der beiden Lösungen.
Ich glaube dass es daran liegt dass der input Wert innerhalb von " " steht, leider weiß ich nicht wie ich das im Regex unterbringen soll...
Kann mir jemand helfen?
|
|
|
|
|
|
|
ich hab jetzt deinen code nicht gelesen, jedoch scheitert dein code schon allein an der tatsache, dass du onsubmit="return functionName()" schreiben musst
|
|
|
|
|
|
|
Hmm, daran lags aber auch nicht.
Warum muss ein Return da rein?
|
|
|
|
|
|
|
weil du das versenden des formulars ja verhindern willst.
Weil ich grad sonst nix zu tun hatte, hab ich jetzt einfach hier mal ein kurzes Beispiel geschrieben, das dir helfen sollte.
|
PHP: |
<!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>
<title>Form Validation</title>
<script type="text/javascript">
var allowedImageExtensions = ["gif", "jpg", "bmp", "png", "jpeg"];
function validateForm(formReference) {
var searchCriteria = new RegExp("\\.(" + allowedImageExtensions.join("|") + ")$", "i");
var formIsValid = searchCriteria.test(formReference.elements["uploadFile"].value);
if(formIsValid == false) {
alert("File may not be uploaded");
return false;
}
return true;
}
</script>
</head>
<body>
<form method="post" action="index.php" name="uploadForm" onsubmit="return validateForm(this)">
<input type="file" name="uploadFile" />
<input type="submit" name="submitButton" value="Send Form" />
</form>
</body>
</html>
|
|
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von White[AoT] am 16.05.2007 14:06]
|
|
|
|
|
|
Geil, danke dir vielmals!!
|
|
|
|
|
|
|
Hi, nachdem mir das letzte Mal so super geholfen wurde versuch ichs gleich nochmal:
|
PHP: |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Javascript</title>
<script type="text/javascript">
function toggle(id1,id2)
{
var getid_1 = document.getElementById(id1);
var getid_2 = document.getElementById(id2);
if (getid_1.style.display =='none' && getid_2.style.display == 'block')
{
id1.style.display = 'block';
id2.style.display = 'none';
}
if (getid_1.style.display == 'block' && getid_2.style.display == 'none')
{
id1.style.display = 'none';
id2.style.display = 'block';
}
}
</script>
</head>
<body>
<p id="eins" style="display:none;">Lorem Ipsum Dolor sit amet...</p>
<br />
<p id="zwei" style="display:block;">Amet Sit Dolor Ipsum Lorem...</p>
<br />
<a href="#" onClick="javascript:toggle(eins,zwei);">Switch</a>
</body>
</html>
|
|
Beim Klicken auf switch soll das eine Element sichtbar gemacht werden, das andere aber verschwinden und umgekehrt.
Was habe ich falsch gemacht?
|
|
|
|
|
|
|
| Zitat von psyched
|
PHP: |
...
var getid_1 = document.getElementById(id1);
var getid_2 = document.getElementById(id2);
..
id1.style.display = 'block';
id2.style.display = 'none';
...
|
|
Beim Klicken auf switch soll das eine Element sichtbar gemacht werden, das andere aber verschwinden und umgekehrt.
Was habe ich falsch gemacht?[/b]
| |
|
|
|
|
|
|
|
|
PHP: |
<script type="text/javascript">
function toggle(id1,id2)
{
var getid_1 = document.getElementById(id1);
var getid_2 = document.getElementById(id2);
if (getid_1.style.display =='none' && getid_2.style.display == 'block')
{
getid_1.style.display = 'block';
getid_2.style.display = 'none';
}
else if (getid_1.style.display == 'block' && getid_2.style.display == 'none')
{
getid_1.style.display = 'none';
getid_2.style.display = 'block';
}
}
</script>
|
|
So also?
Funktioniert auch nicht...
|
|
|
|
|
|
|
<a href="#" onClick="javascript:toggle(eins,zwei);">Switch</a>
Da fehlen noch die '
<a href="#" onClick="javascript:toggle('eins','zwei');">Switch</a>
|
|
|
|
|
|
|
Juhu, danke \o/
/ wie lange gibts eigentlich noch das Prost-Reply? Und warum?
|
|
|
|
|
|
|
Aber immer schön noch serverseitig validieren.
|
|
|
|
|
|
|
Natürlich, aber damit spart man sich wenigstens die Uploadzeit
|
|
|
|
|
|
Thema: Wert eines Eingabefelds überprüfen ( Javascript - Regulärer Ausdruck ) |