Ändra vilken funktion Onsubmit skall gå till via val av radio knapp

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Asa
    Medlem
    • 2001-12-18
    • 1934

    #1

    Ändra vilken funktion Onsubmit skall gå till via val av radio knapp

    Jag har tre radioknappar och när jag väljer en sådan skall mitt formulär då välja vilken funktion som skall anropas i onsubmit. Vill ha så bara för att när jag väljer ett val kommer en div fram med olika fält.

    Alltså väljer jag radioknapp nr 1 kommer 3 input fält fram med ex namn ett, tva och tre

    Väljer jag knapp 2 kommer 2 fält fram med namnet fyra och fem.

    Hoppas någon förstår hur jag vill göra och kan hjälpa mig
    Jag bara ÄR ...... hur ska man annars vara?!?
  • Asa
    Medlem
    • 2001-12-18
    • 1934

    #2
    Någon som förstår?

    Här är min kod.

    Code:
    <script>
    function validera1(){
    	if (document.form.falt1.value==""){
    		alert("Du glömde skriva text 1!");
    		return false;	
    	}else if (document.form.falt2.value==""){
    		alert("Du glömde skriva text 2!");		
    		return false;
    	}else if (document.form.falt3.value==""){
    		alert("Du glömde skriva text 3!");		
    		return false;
    	}
    }
    function validera2(){
    	if (document.form.falt4.value==""){
    		alert("Du glömde skriva text 4!");
    		return false;	
    	}else if (document.form.falt5.value==""){
    		alert("Du glömde skriva text 5!");		
    		return false;
    	}else if (document.form.falt6.value==""){
    		alert("Du glömde skriva text 6!");		
    		return false;
    	}
    }
    </script>
    
    <form method="post" name="form" action="#" onSubmit="return valideraX()">
    
    <script type="text/javascript">
    $(document).ready(function () {  
    	$('input[type=radio]').change(function(){ 
    		if ($('#choose1').is(':checked')) {
    			$('#show1').show();
    			$('#show2').hide();
    		} else {
    			$('#show1').hide();
    		}
    		if ($('#choose2').is(':checked')) {
    			$('#show1').hide();
    			$('#show2').show();
    		} else {
    			$('#show2').hide();
    		}
    	});
    });
    $("#choose1").prop("checked", true).change();
    </script>
    
    <input type="radio" name="typ" id="choose1" value="1"> DIV 1
    <input type="radio" name="typ" id="choose2" value="2"> DIV 2
    
    <div id="show1" style="display:none">
    	<strong>Text 1</strong><br /><input type="text" name="falt1"><br />
    	<strong>Text 2</strong><br /><input type="text" name="falt2"><br />
    	<strong>Text 3</strong><br /><input type="text" name="falt3">
    </div>
    
    <div id="show2" style="display:none">
    	<strong>Text 4</strong><br /><input type="text" name="falt4"><br />
    	<strong>Text 5</strong><br /><input type="text" name="falt5"><br />
    	<strong>Text 6</strong><br /><input type="text" name="falt6">
    </div>
    
    <input type="text" name="antal" value="1">
    <input type="text" name="namn" value="Åsa">
    
    <input type="submit" value="Spara">
    
    </form>
    Jag bara ÄR ...... hur ska man annars vara?!?

    Comment

    • Asa
      Medlem
      • 2001-12-18
      • 1934

      #3
      Ingen som kan och vill hjälpa mig?
      Jag bara ÄR ...... hur ska man annars vara?!?

      Comment

      • voigtann1
        Forumvärd
        • 2001-06-14
        • 8810

        #4
        kör en annan function för submit som kontrollera vilket värde din radio knapp ha, beroende på vilken det var kör den metod du vill köra.

        Eller kan du använda dig av jquery och binder event och binder bort submit event när du gör en ändring.

        skrev om markupn lite du behöver inte gå mot id:n hela tiden

        [kod]<script>
        $(document).ready(function () {

        function validera1(){
        if (this.falt1.value==""){
        alert("Du glömde skriva text 1!");
        return false;
        }else if (this.falt2.value==""){
        alert("Du glömde skriva text 2!");
        return false;
        }else if (this.falt3.value==""){
        alert("Du glömde skriva text 3!");
        return false;
        }
        }
        function validera2(){
        if (this.falt4.value==""){
        alert("Du glömde skriva text 4!");
        return false;
        }else if (this.falt5.value==""){
        alert("Du glömde skriva text 5!");
        return false;
        }else if (this.falt6.value==""){
        alert("Du glömde skriva text 6!");
        return false;
        }
        }

        var show1 = $('#show1');
        var show2 = $('#show2');
        var form = $("#form");
        $('inputadio[name="typ"]').change(function(){
        var value = this.value;

        show1.hide();
        show2.hide();

        form.off('.validate');

        if(value == "1") {
        show1.show();
        form.on('submit.validate', validera1);
        } else if(value == "2") {
        show2.show();
        form.on('submit.validate', validera2);
        }

        }).filter(':checked').trigger('change');
        });
        </script>

        <form method="post" name="form" action="#" id="form">
        <input type="radio" name="typ" value="1" checked> DIV 1
        <input type="radio" name="typ" value="2"> DIV 2

        <div id="show1" style="display:none">
        <strong>Text 1</strong><br /><input type="text" name="falt1"><br />
        <strong>Text 2</strong><br /><input type="text" name="falt2"><br />
        <strong>Text 3</strong><br /><input type="text" name="falt3">
        </div>

        <div id="show2" style="display:none">
        <strong>Text 4</strong><br /><input type="text" name="falt4"><br />
        <strong>Text 5</strong><br /><input type="text" name="falt5"><br />
        <strong>Text 6</strong><br /><input type="text" name="falt6">
        </div>

        <input type="text" name="antal" value="1">
        <input type="text" name="namn" value="Åsa">

        <input type="submit" value="Spara">

        </form>[/kod]
        "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

        Comment

        • Asa
          Medlem
          • 2001-12-18
          • 1934

          #5
          Tackar så mycket!
          Jag bara ÄR ...... hur ska man annars vara?!?

          Comment

          • Asa
            Medlem
            • 2001-12-18
            • 1934

            #6
            Om jag har flera lika formulär på samma sida hur skriver jag då?
            Jag bara ÄR ...... hur ska man annars vara?!?

            Comment

            • voigtann1
              Forumvärd
              • 2001-06-14
              • 8810

              #7
              Originally posted by Asa
              Om jag har flera lika formulär på samma sida hur skriver jag då?
              är det det aktuella formuläret så kör istället:
              [kod] $('inputadio[name="typ"]').change(function(){
              var value = this.value;
              var form = $(this.form);

              show1.hide();
              show2.hide();

              form.off('.validate');

              if(value == "1") {
              show1.show();
              form.on('submit.validate', validera1);
              } else if(value == "2") {
              show2.show();
              form.on('submit.validate', validera2);
              }

              }).filter(':checked').trigger('change');[/kod]
              "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

              Comment

              • Asa
                Medlem
                • 2001-12-18
                • 1934

                #8
                Okej ska testa
                Jag bara ÄR ...... hur ska man annars vara?!?

                Comment

                • Asa
                  Medlem
                  • 2001-12-18
                  • 1934

                  #9
                  Funkade fint
                  Jag bara ÄR ...... hur ska man annars vara?!?

                  Comment

                  Working...