Bewahrer: <button onclick> sendet Form ab

Guten Nachmittag!

Ich habe eine ganz normale html <form></form>, in die mehrere <button>'s eingebaut sind zwecks BBCode. Beim klick auf diese Buttons wird das entsprechende Formular allerdings abgeschickt, ohne das ich das möchte. Wie unterbinde ich das?

<form action="index.php?s=board&action=addthread&where=<?=$GLOBALS['Result']['Data']['BoardID']?>" method="POST">  
	<table id="Board">  
	     <tr colspan="2">  
	          <td><input type="text" name="Title" value="Titel" /></td>  
		</tr>  
		<tr>  
	          <td id="BoardCode" colspan="2">  
	               <button onclick="addBBCode('[FETT]','[/FETT]');">Fett</button>  
				<button onclick="addBBCode('[KURSIV]','[/KURSIV]');">Kursiv</button>  
				<button onclick="addBBCode('[UNTERSTRICHEN]','[/UNTERSTRICHEN]');">Unterstrichen</button>  
				<button onclick="addLink();">Link</button>  
				<button onclick="addImage();">Bild</button>  
	          </td>  
	     </tr>  
		<tr>  
		     <td id="BoardPost">  
		          <textarea id="BoardInput" name="Text"></textarea>  
			</td>  
			<td id="BoardSmiley">  
   			<?php  
			$BoardTemplate->showSmileys();  
			?>  
			</td>  
		</tr>  
		<tr colspan="2">  
		     <td><input type="submit" value="OK" />  
		</tr>  
	</table>  
	</form>
  1. Tach,

    Ich habe eine ganz normale html <form></form>, in die mehrere <button>'s eingebaut sind zwecks BBCode. Beim klick auf diese Buttons wird das entsprechende Formular allerdings abgeschickt, ohne das ich das möchte. Wie unterbinde ich das?

    der Standardwert für das Attribut type beim Button-Element ist submit. Wenn du das verhindern willst, musst du einen anderen Wert vorgeben, vermutlich button.

    mfg
    Woodfighter

    1. Interessant, wusste gar nicht, dass es das type Attribut dafür gibt und das ganze somit eine redundante Form von <input type="submit" value="Absenden" /> ist...

      Danke!

      1. Tach!

        Interessant, wusste gar nicht, dass es das type Attribut dafür gibt und das ganze somit eine redundante Form von <input type="submit" value="Absenden" /> ist...

        Das ist nicht direkt redundant. <input type="submit"/> kann man nur noch mit ein paar weiteren Attributen erweitern, unter anderem value="..." für den anzuzeigenden Text. In ein <button type="submit">...</button> kann man eine ganze Menge weitere HTML-Elemente einbauen, so dass man nicht nur einen einfachen Text in den Button bekommt.

        dedlfix.

  2. Tach!

    Ich habe eine ganz normale html <form></form>, in die mehrere <button>'s eingebaut sind zwecks BBCode. Beim klick auf diese Buttons wird das entsprechende Formular allerdings abgeschickt, ohne das ich das möchte. Wie unterbinde ich das?

    type="submit" schickt ein Formular ab. type="button" macht das nicht. Default (also wenn nichts angegeben ist) ist dabei type="submit" - und das sowohl beim input- als auch beim button-Element.

    dedlfix.

    1. Tach!

      Default (also wenn nichts angegeben ist) ist dabei type="submit" - und das sowohl beim input- als auch beim button-Element.

      Ähm, teilweise Quatsch, weil input ja auch noch andere Dinge als Buttons repräsentiert. Bei input ist der Default type="text" und ohne Angabe wird's kein Button.

      dedlfix.

  3. Hallo,

    Ich habe eine ganz normale html <form></form>, in die mehrere <button>'s eingebaut sind zwecks BBCode. Beim klick auf diese Buttons wird das entsprechende Formular allerdings abgeschickt, ohne das ich das möchte. Wie unterbinde ich das?

    die Antwort hast du ja nun schon zweimal bekommen. Ich habe für die Zukunft noch eine Bitte:

    <form action="index.php?s=board&action=addthread&where=<?=$GLOBALS['Result']['Data']['BoardID']?>" method="POST">

    Zeichne den Code hier im Posting doch bitte als das aus, was er wirklich ist; im Fall von Misch-Code wie in deinem Beispiel nimm einfach das, was den relevanten Teil ausmacht, also hier HTML (zumal du dein Posting schon richtigerweise im Themenbereich HTML einsortiert hast).

    Im Idealfall hättest du den eingebetteten PHP-Code sogar weglassen und nur den clientseitigen Code posten können (sollen), so wie er beim Browser ankommt.

    Ciao,
     Martin

    --
    Die letzten Worte des Fallschirmspringers:
    ELENDE SCHEISSMOTTEN!!
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(