JS Button deaktivieren / aktivieren


Spacedoener

Gesperrt
Hi,

habe ein frage, möchte in einem Formular durch Combobox den Submit button deaktivieren / aktivieren, je nach auswahl...
Aber leider weiß ich nicht wie das gehen soll,

Habe es testweise mit checkbox gemacht und damit klappt es einwandfrei, nur weiß ich nicht wie es mit combobox geht...

Mit checkbox:
PHP:
function test(el)
{
checkobj = el;
if(document.all||document.getElementById)
        {
            for(i=0; i<checkobj.form.length; i++)
            {
                var tempobj = checkobj.form.elements[i];
                if(tempobj.type.toLowerCase()=="submit")
                    tempobj.disabled =! checkobj.checked;
            }
        }
}

---------------------------------------

<form action="test" method="post">
<input name="test" type="checkbox" onClick="test(this)">test<br>
<input type="submit" value="submit" disabled>
</form>

Dies funktioniert...

Aber dies hier funktioniert nicht...

Combobox:
PHP:
function test(el)
{
if(document.all||document.getElementById)
        {
            for(i=0; i<el.length; i++)
            {
                var tempobj = el.elements[i];
                if(tempobj.type.toLowerCase()=="submit")
                    tempobj.disabled=false;
            }
        }
}

---------------------------------------

<form action="test" method="post">
<select name='test' size='1' onChange='test(this)'>
<option value = '0'>Auswahl:</option>
<option value = '1'>Test 1</option>
<option value = '2'>Test 2</option>
<option value = '3'>Test 3</option>
</select>
<input type="submit" value="submit" disabled>
</form>


Hat da mal einer plan von, wenn ja würde ich micht sehr freuen, wenn ihr mir da Helfen könnt...

MfG
Spacedoener
 

hans_schmid

Erfahrenes Mitglied
Also ich bin nicht ganz sicher, ob ich Dich richtig verstanden habe, aber wenn Du willst, dass der Button nur dann aktiv ist, wenn nicht "Auswahl:" ausgewählt ist, dann hab ich da was für Dich ;-)
PHP:
<html>
<head>
	<title>Untitled</title>
	<script language="JavaScript">
	function test() 
	{ 
		if(document.myform.combo.value != "0")
		{
			document.myform.submit_button.disabled = false;
		} 
		else
		{
			document.myform.submit_button.disabled = true;
		}
	}
	</script>
</head>

<body>


<form name="myform" action="test" method="post"> 
<select name="combo" size="1" onChange="test()"> 
<option value = "0">Auswahl:</option> 
<option value = "1">Test 1</option> 
<option value = "2">Test 2</option> 
<option value = "3">Test 3</option> 
</select> 
<input type="submit" name="submit_button" value="submit" disabled> 
</form>

</body>
</html>
 

rootssw

Erfahrenes Mitglied
:eek: :eek: :eek: :mad: :mad:

Warum hast du denn den Post zweimal rein gesetzt?!
Ich hatte eigentlich schon bescheid gesagt, dass der Post verschoben werden sollte!
Na, dann kannst du den ersten ja auch wieder löschen!
Oder hat da ein Moderator 'nen falschen Knopf gedrückt (statt auf "verschieben" auf "nochmal reinsetzen" - oder so :rolleyes: ).

Naja hier mein Code-Beispiel nochmal (ist ja auch kürzer als das von hans_schmid :) ):

Hallo!

Probier es doch mal mit diesem Code!

Code:
<form name="testform" action="test" method="post"> 
<select name='test' size='1' onChange='document.testform.submit.disabled = (this.selectedIndex == 0 ? true : false);'> 
<option value>Auswahl:</option> 
<option value = '1'>Test 1</option> 
<option value = '2'>Test 2</option> 
<option value = '3'>Test 3</option> 
</select> 
<input type="submit" name="submit" value="submit" disabled> 
</form>

Das setzt, je nachdem, ob nur "Auswahl:" ausgewählt wurde oder nicht, den Submit-Button auf Enabled bzw. Disabled.
 
Zuletzt bearbeitet:

Spacedoener

Gesperrt
Original geschrieben von hans_schmid
Also ich bin nicht ganz sicher, ob ich Dich richtig verstanden habe, aber wenn Du willst, dass der Button nur dann aktiv ist, wenn nicht "Auswahl:" ausgewählt ist, dann hab ich da was für Dich ;-)
PHP:
<html>
<head>
	<title>Untitled</title>
	<script language="JavaScript">
	function test() 
	{ 
		if(document.myform.combo.value != "0")
		{
			document.myform.submit_button.disabled = false;
		} 
		else
		{
			document.myform.submit_button.disabled = true;
		}
	}
	</script>
</head>

<body>


<form name="myform" action="test" method="post"> 
<select name="combo" size="1" onChange="test()"> 
<option value = "0">Auswahl:</option> 
<option value = "1">Test 1</option> 
<option value = "2">Test 2</option> 
<option value = "3">Test 3</option> 
</select> 
<input type="submit" name="submit_button" value="submit" disabled> 
</form>

</body>
</html>

Hi Hans_Schmid,

dankeschön für deine Hilfe, aber leider funktioniert deins nicht, warum auch immer weiß ich nicht, habe alles versucht aber klappt nicht...
Trotzdem dankeschön für deine Bemühung, würde mich trotzdem für jede kleine Hilfe weiterhin freuen...

MfG
Spacedoener
 

Spacedoener

Gesperrt
Original geschrieben von rootssw
:eek: :eek: :eek: :mad: :mad:

Warum hast du denn den Post zweimal rein gesetzt?!
Ich hatte eigentlich schon bescheid gesagt, dass der Post verschoben werden sollte!
Na, dann kannst du den ersten ja auch wieder löschen!
Oder hat da ein Moderator 'nen falschen Knopf gedrückt (statt auf "verschieben" auf "nochmal reinsetzen" - oder so :rolleyes: ).

Naja hier mein Code-Beispiel nochmal (ist ja auch kürzer als das von hans_schmid :) ):

Hi Rootssw,

juhuuu, dankeschön, es funktioniert und zwar genau so wie ich es haben wollte...
Aber wie kann ich es trotzdem in einem Funktion packen so das der Submit button erst aktiviert wird, wenn 2 verschiedene Comboboxen jeweils angewählt werden ?

Weil, nach deinem Lösung, kann ich es nur bei einem Combobox realisieren, deshalb ist es besser wenn ich es in einem Funktion schreibe, wo ich dann 2 Comboboxen gleichzeitig bearbeite...

Also wenn, (Combobox_a UND Combobox_b) angewählt wurde, soll der Submit button aktiviert sein, ansonsten soll es deaktiviert bleiben...

Freue mich auf jede kleine Hilfe und bedanke mich schon im Vorraus...

MfG
Spacedoener
 

hans_schmid

Erfahrenes Mitglied
öhm... was funktioniert denn nicht

Wird die Box nicht enabled, wenn Du was auswählst?
also bei mir funktionierts wie beschrieben (Auswahl != 0 --> Button aktiviert).

Hast Du meinen Code 1:1 übernommen? denn eigentlich sollte mein Code genau das gleich bewirken, wie der von rootssw... Nur halt ein bisschen länger :)
Falls Du ne Fehlermeldung bekommst, kann es evtl. sein, dass Du die " in meinem Code durch ' ersetzen musst.

Für Dein Problem mit zwei ComboBoxen hätte ich diesen Code:
PHP:
<html> 
<head> 
    <title>Untitled</title> 
    <script language="JavaScript"> 
    function test() 
    { 
        if(document.myform.combo1.value != "0" && document.myform.combo2.value != "0") 
        { 
            document.myform.submit_button.disabled = false; 
        } 
        else 
        { 
            document.myform.submit_button.disabled = true; 
        } 
    } 
    </script> 
</head>

<body> 


<form name="myform" action="test" method="post"> 
<select name="combo1" size="1" onChange="test()"> 
<option value = "0">Auswahl:</option> 
<option value = "1">Test 1</option> 
<option value = "2">Test 2</option> 
<option value = "3">Test 3</option> 
</select>
<select name="combo2" size="1" onChange="test()"> 
<option value = "0">Auswahl:</option> 
<option value = "1">Test 1</option> 
<option value = "2">Test 2</option> 
<option value = "3">Test 3</option> 
</select> 
<input type="submit" name="submit_button" value="submit" disabled> 
</form>
So funktioniert es zumindest bei mir...
Vielleicht ein bisschen länger als optimal, aber immerhin klappts ;-)

MfG
Hans
 

Spacedoener

Gesperrt
Juhuu, dankeschön, habe es gestern doch allein schon geschafft, dass es mit 2 comboboxen funktioniert...

Aber wie mache ich das so, dass alle Textfelder die in dem Formular drin sind meinetwegen 5 Textfelder mit unterschiedlichen Namen auch so wie der Submit button deaktiviert oder aktiviert werden ?

Meine Funktion sieht so aus...
PHP:
<html> 
<head> 
    <title>Untitled</title> 
    <script language="JavaScript"> 
function combo(form_name)
{
    if((document.forms[form_name].combo_Kat.selectedIndex && document.forms[form_name].combo_Lief.selectedIndex) != 0)
    {
        document.forms[form_name].action.disabled = (this.selectedIndex == 0 ? true : false);
    }
    else
    {
        document.forms[form_name].action.disabled = (this.selectedIndex != 0 ? true : false);
    }
}

</script> 
</head> 

<body> 


<form name="artikel" action="test" method="post"> 
<select name="combo_Kat" size="1" onChange="combo("artikel")"> 
<option value = "0">Auswahl:</option> 
<option value = "1">Test 1</option> 
<option value = "2">Test 2</option> 
<option value = "3">Test 3</option> 
</select> 
<select name="combo_Lief" size="1" onChange="combo("artikel")"> 
<option value = "0">Auswahl:</option> 
<option value = "1">Test 1</option> 
<option value = "2">Test 2</option> 
<option value = "3">Test 3</option> 
</select> 
<input type="submit" name="action" value="submit" disabled> 
</form>

Hierzu noch paar beliebige Textfelder, die unabhängig sind wie die einzelnen Textfelder heißen...

Freue mich auf jede kleine Hilfe von euch...

MfG
Spacedoener