Erneute Kontrolle nach Änderung

benad

Grünschnabel
Folgende Code überprüft ob alle Eingaben korrekt sind

PHP:
function eingabe_check(frm){
	var myResult;
	myResult = 1;
	
	if (window.document.frm.nav.value == ""){
		alert("Geben Sie bitte einen Text ein bei der Navigation");
		window.document.frm.nav.focus();
		return false;
	}
	document.frm.elements["senden"].disabled = true;
	
	if (myResult == 1) {
		document.frm.elements["senden"].disabled = false;
	}
}

Die Überürpfung erfolgt via einen Klick auf den Button Verifizieren. Wenn alles OK ist wird der Senden Button aktiviert. So weit so gut.
Nun zu meinem Problem
Nach der Verifizierung ist es möglich die Eingaben zu Ändern, dass ist ja noch OK.
Aber der Senden Button sollte wieder auf disabled geschaltet werden, bei einer Änderung der Eingaben.

Hoffentlich kann mir einer von euch helfen
 
Danke für deine rasche Antwort

Also das onChange geht teils. Aber es ändert denn Button nicht wieder auf disabled :(
 
Doch tut es, wenn du es richtig machst. Wo dein Fehler liegt ist aber ohne Code schwer zu sagen. ;) Poste doch einfach mal alles was du hast.
 
Ist eben schon einiges ;-)

Der eine JavaScript Teil ist ja weiter oben schon geposted
Hier mal ein Teil davon


PHP:
<form method="post" name="frm" action="<% = ASPSELF %>" onsubmit="eingabe_check(this)">
<tr>
    <td class="<% = session("css_maintext_form") %>"><% = t12 & t3 %></td>
    <td colspan="2"><input type="text" name="nav" class="<% = session("css_text_gross") %>" value="<% = response.write(request("nav")) %>" onchange="eingabe_check(this.value)" maxlength="50"></td>
</tr>

    <td class="<% = session("css_maintext_form") %>"><input type="button" class="<% = session("css_button_klein") %>" value="<% = t21 %>" name="verify" onclick="eingabe_check(this.form)"></td>
    <td><input type="submit" class="<% = session("css_button_klein") %>" value="<% = t23 %>" name="senden" disabled></td>
    <td><input type="reset" class="<% = session("css_button_klein") %>" value="<% = t20 %>" name="loeschen"></td>
</tr>
</form>
 
Sehe ich das richtig, dass bei deiner Funktion die Variable frm den Form-Namen enthält?
Wenn ja, kannst du der Funktion ja nicht den Wert des Input-Feldes übergeben.

Code:
function eingabe_check(frm){ 
    var myResult; 
    myResult = 1; 
     
    if (frm.nav.value == ""){ 
        alert("Geben Sie bitte einen Text ein bei der Navigation"); 
        frm.nav.focus(); 
        return false; 
    } 
    frm.elements["senden"].disabled = true; 
     
    if (myResult == 1) { 
        frm.elements["senden"].disabled = false; 
    } 
}

HTML:
<form method="post" name="frm" action="<% = ASPSELF %>" onsubmit="eingabe_check(this)"> 
<tr> 
    <td class="<% = session("css_maintext_form") %>"><% = t12 & t3 %></td> 
    <td colspan="2"><input type="text" name="nav" class="<% = session("css_text_gross") %>" value="<% = response.write(request("nav")) %>" onchange="eingabe_check(this.form)" maxlength="50"></td> 
</tr> 

    <td class="<% = session("css_maintext_form") %>"><input type="button" class="<% = session("css_button_klein") %>" value="<% = t21 %>" name="verify" onclick="eingabe_check(this.form)"></td> 
    <td><input type="submit" class="<% = session("css_button_klein") %>" value="<% = t23 %>" name="senden" disabled></td> 
    <td><input type="reset" class="<% = session("css_button_klein") %>" value="<% = t20 %>" name="loeschen"></td> 
</tr> 
</form>
 
Zuletzt bearbeitet:
Hättest du mir denn einen Vorschlag wie ich es anderst machen könnte?
Damit das mit der erneuten Verifizierung bei einer Änderung funktioniert.
 
Nein, leider nicht
Er bewirkt, dass jetzt nach einem input file alle Fehlermeldungen erscheinen von den restlichen

Hier ist mal der ganze code des files (hab die Änderungen wieder zurückgesetzt)

Code:
<script language="JavaScript">
var dreiPunkteSindPflicht=1;//auf 0 setzen wenn z. B. die Eingabe 123 ausreicht
function eingabe_check(frm){
	var myResult;
	myResult = 1;
	if (window.document.frm.nav.value == ""){
		alert("Geben Sie bitte einen Text ein bei der Navigation");
		window.document.frm.nav.focus();
		return false;
	}
	
	fld=frm.ip;
	
	r=new RegExp('[^0-9.]','g');
	str=fld.value;
	if(r.test(str)) {
		alert('Es sind nur Ziffern und Punkte erlaubt bei der IP!');
		window.document.frm.ip.focus();
		myResult = 0;
	}
	arr=str.split('.');
	if(arr.length > 4) {
		alert('Zwischen den Ziffern sind maximal 3 Punkte erlaubt bei der IP!');
		window.document.frm.ip.focus();
		myResult = 0;
	}
	if((Number(arr[0])<1||Number(arr[0])>256)){
		alert('Die Zahl vor dem ersten Punkt darf nicht kleiner als 1 und nicht größer als 500 sein bei der IP!');
		fld.focus();
		window.document.frm.ip.focus();
		myResult = 0;
	}
	// 4 eingaben zwischen den punkten
	if(dreiPunkteSindPflicht&&arr.length!=4) {
		alert('Es müssen vier durch Punkte getrennte Zifferngruppen eingegeben werden bei der IP!');
		myResult = 0;
	}
	for (var i=1;i<arr.length;i++){
		// zwischen den punkten muss minimum 1 zahl maximal 3 zahlen stehen
		if (arr[i].length<1||arr[i].length>3) {
			alert('Zwischen 2 Punkten muß immer mindestens eine Ziffer stehen. Maximal sind 3 Ziffern zwischen 2 Punkten erlaubt bei der IP.');
			window.document.frm.ip.focus();
			myResult = 0;
		}
	}
	for (var i=1;i<arr.length;i++) {
		if (Number(arr[i]>256)) {
			alert('Der Wert einer Zahl darf 255 nicht überschreiten bei der IP.');
			window.document.frm.ip.focus();
			myResult = 0;
		}
	}
	
	fld=frm.mask;
	r=new RegExp('[^0-9.]','g');
	str=fld.value;
	if(r.test(str)) {
		alert('Es sind nur Ziffern und Punkte erlaubt bei der Subnet!');
		window.document.frm.ip.focus();
		myResult = 0;
	}
	arr=str.split('.');
	if(arr.length > 4) {
		alert('Zwischen den Ziffern sind maximal 3 Punkte erlaubt bei der Subnet!');
		window.document.frm.ip.focus();
		myResult = 0;
	}
	if(arr[0]!='0'&&arr[0]!='128'&&arr[0]!='224'&&arr[0]!='240'&&arr[0]!='248'&&arr[0]!='252'&&arr[0]!='254'&&arr[0]!='255') {
		alert('Die Zahl vor dem ersten Punkt muss 0, 128, 224. 240, 248, 252, 254 oder 255 lauten bei der Subnet!');
		window.document.frm.ip.focus();
		myResult = 0;
	}
	if(arr[1]!='0'&&arr[1]!='128'&&arr[1]!='224'&&arr[1]!='240'&&arr[1]!='248'&&arr[1]!='252'&&arr[1]!='254'&&arr[1]!='255') {
		alert('Die Zahl vor dem ersten Punkt muss 0, 128, 224. 240, 248, 252, 254 oder 255 lauten bei der Subnet!');
		window.document.frm.ip.focus();
		myResult = 0;
	}
	if(arr[2]!='0'&&arr[2]!='128'&&arr[2]!='224'&&arr[2]!='240'&&arr[2]!='248'&&arr[2]!='252'&&arr[2]!='254'&&arr[2]!='255') {
		alert('Die Zahl vor dem ersten Punkt muss 0, 128, 224. 240, 248, 252, 254 oder 255 lauten bei der Subnet!');
		window.document.frm.ip.focus();
		myResult = 0;
		
	}
	if(arr[3]!='0'&&arr[3]!='128'&&arr[3]!='224'&&arr[3]!='240'&&arr[3]!='248'&&arr[3]!='252'&&arr[3]!='254'&&arr[3]!='255') {
		alert('Die Zahl vor dem ersten Punkt muss 0, 128, 224. 240, 248, 252, 254 oder 255 lauten bei der Subnet!');
		window.document.frm.ip.focus();
		myResult = 0;
	}
	if(dreiPunkteSindPflicht&&arr.length!=4) {
		alert('Es müssen vier durch Punkte getrennte Zifferngruppen eingegeben werden bei der Subnet!');
		window.document.frm.ip.focus();
		myResult = 0;
	}
	for (var i=1;i<arr.length;i++){
		if (arr[i].length<1||arr[i].length>3) {
			alert('Zwischen 2 Punkten muß immer mindestens eine Ziffer stehen. Maximal sind 3 Ziffern zwischen 2 Punkten erlaubt bei der Subnet.');
			window.document.frm.ip.focus();
			myResult = 0;
		}
	}
	for (var i=1;i<arr.length;i++) {
		if (Number(arr[i]>255)) {
			alert('Der Wert einer Zahl darf 255 nicht überschreiten bei der Subnet.');
			window.document.frm.ip.focus();
			myResult = 0;
		}
	}
	
	document.frm.elements["senden"].disabled = true;
	
	if (myResult == 1) {
		document.frm.elements["senden"].disabled = false;
	}
}

</script>

<%
If request.ServerVariables("REQUEST_METHOD") = "POST" Then	
	strIPAddress = request.Form("IP")
	strMask = request.Form("Mask")
	strNav = request.Form("nav")
	strKID = request("KundeID")
	strRID = request("IPRangeID")
	
	response.redirect "popup.asp?ID=55&IP=" & strIPAddress & "&Mask=" & strMask & "&Nav=" & strNav  & "&KundeID=" & strKID & "&IPRangeID=" & strRID
End If
%>

<form method="post" name="frm" action="<% = ASPSELF %>" onsubmit="eingabe_check(this)">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
    <td class="<% = session("css_maintext_form") %>"><% = t12 & t3 %></td>
    <td colspan="2"><input type="text" name="nav" class="<% = session("css_text_gross") %>" value="<% = response.write(request("nav")) %>" maxlength="50"></td>
</tr>
<tr>
    <td class="<% = session("css_maintext_form") %>"><% = t13 & t3 %></td>
    <td colspan="2"><input type="text" name="ip" class="<% = session("css_text_gross") %>" value="<% =  response.write(request("ip")) %>" maxlength="15"></td>
</tr>
<tr>
    <td class="<% = session("css_maintext_form") %>"><% = t2 & t3 %></td>
    <td colspan="2"><input type="text" name="mask" class="<% = session("css_text_gross") %>" value="<% =  response.write(request("mask")) %>" maxlength="15"></td>
</tr>
<tr>
    <td class="<% = session("css_maintext_form") %>"><input type="button" class="<% = session("css_button_klein") %>" value="<% = t21 %>" name="verify" onclick="eingabe_check(this.form)"></td>
    <td><input type="submit" class="<% = session("css_button_klein") %>" value="<% = t23 %>" name="senden" disabled></td>
    <td><input type="reset" class="<% = session("css_button_klein") %>" value="<% = t20 %>" name="loeschen"></td>
</tr>
</table>
<input type="hidden" value="<% = request("KundeID") %>">
</form>
<script language="JavaScript">
	window.document.frm.nav.focus();
</script>
 
bei dem Feld, in dem die Eingabe geprüft werden soll/muss einfach
Code:
onchange="eingabe_check(this.form)"
dazuschreiben.

Übrigends: Müsste das bei onSubmit="" nicht auch this.form heißen?
 

Neue Beiträge

Zurück