Just nu i M3-nätverket
Jump to content

Slå ihop värdet av textboxar efter dropdown val - jQuery


nsky

Recommended Posts

Hej,

är nybörjare på jQuery och känner att jag är helt ute och cyklar, och får inte ihop det här. Det jag försöker göra är att slå ihop värdet från två och tre textboxar till en. Om man väljer val1 i dropdown listan ska värdet från tb1 och tb2 slås ihop i tb4. Om jag väljer val2 så ska värdet av tb1, tb2 och tb3 slås ihop i tb4. Funktionen ska triggas när jag klickar i tb5 pga att textboxarna ligger efter dropdownlistan. Hoppas ni förstår vad jag försöker göra, och inte har trasslat in det allt för mycket...

 

$(document).ready(function () {
 $("#antal").change(function () {
 var myval = $(this).myval();
 switch(parseInt(myval)){
 case1:
 myval == "val1";
 $("#tb5").focus(function(event){
 var str = $("#tb1").val() + ", " + $("#tb2").val();
     $("#tb4").val( str)
     });
     break;
     case 2:
     myval == "val2";
 $("#tb5").focus(function(event){
 var str = $("#tb1").val() + ", " + $("#tb2").val() + ", " + $("#tb3").val();
     $("#tb4").val( str)
     });
     break;
 }  
 });
 });

 

Link to comment
Share on other sites

Vad är syftet med det du vill göra?

 

Du lägger in en eventlistener i en switch, vilket känns fel då man inte kan ha focus på ett element om man precis har ändrat ett annat.

 

Du har i ditt exempel skrivit "case1:" sammanslaget. Mellanslag efter "case" behövs.

 

 

Link to comment
Share on other sites

Tack för du tar dig tid. Sitter i ett publiceringssystem och jag är tvungen att använda en komponent som har begränsning på visst antal fält. Nu är det så att jag har fler fält än vad den klarar av. Om man väljer val2 i ddl så är man tvungen att fylla i fler tb:ar, väljer man val3 så är man tvungen att fylla i ännu fler. Så jag försöker mig på en fullösning, att slå i ihop värdet från 2, eller 3 tb:ar till en. Men ska göra ett nytt försök....

 

Edit:

Ungefär så här (förstår att man inte kan göra så här men för att visa):

 

if val2 then

$(document).ready(function(){
       $("#tb5").focus(function(event){
        var str = $("#tb1").val() + ", " + $("#tb2").val();
    $("#tb4").val( str)
      });
    });

 

if val3 then

$(document).ready(function(){
       $("#tb5").focus(function(event){
        var str = $("#tb1").val() + ", " + $("#tb2").val()+ ", " + $("#tb3").val();
    $("#tb4").val( str)
      });
    });

 

[inlägget ändrat 2009-10-01 07:53:01 av gunnargren]

Link to comment
Share on other sites

$(document).ready(function(){
       $("#tb5").focus(function(event){
       switch($("#tb2").val()){
       case "1" :
       var str = $("#tb1").val() + ", " + $("#tb2").val();
    $("#tb4").val( str)
           break;
       case "2" :
           var str = $("#tb1").val() + ", " + $("#tb2").val();
    $("#tb4").val( str)
           break;
      default : 
           //inträffar om det inte är 1 eller 2
           break;
      });
    });

 

 

Du förklarar _hur_ du vill göra, men jag undrar varför du gör det på detta sättet!? Kan du inte lägga ihop på serversidan?

 

Link to comment
Share on other sites

Därför jag använder mig av en redigeringssida, och det är där jag ska använda mig av funktionen, samt en presentationssida där jag presenterar resultatet och där begränsningen i komponenten ligger. Vet inte om du blev något klokare för det. Men hur som helst tack för hjälpen!

 

[inlägget ändrat 2009-10-01 08:33:52 av gunnargren]

Link to comment
Share on other sites

Jag har, i mitt exempel nedan, tagit bort eventet för change på tb4 så det körs vid focus på #tb5.

 

Den är, som du kanske ser, inte helt klart så fixa lite med det så är det nog som du vill ha det efter det.

 

 

 

Link to comment
Share on other sites

Efter Jonas_Bo´s hjälp så fick jag det att fungera som jag ville. Tänkte visa den färdiga koden om det är någon som har ett liknande problem nån gång:

 

$(document).ready(function(){
       $("#tb5").focus(function(event){
       switch($("#ddl").val()){
       case "2" :
       var str = $("#tb1").val() + " " + $("#tb2").val();
    $("#tb4").val( str)
           break;
       case "3" :
           var str = $("#tb1").val() + " " + $("#tb2").val() + " " + $("#tb3").val();
    $("#tb4").val( str)
           break;
      default : 
           var str = $("#tb1").val();
    $("#tb4").val( str)
           break;
      };
     });
    });

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...