Just nu i M3-nätverket
Jump to content

jquery


jan-erik

Recommended Posts

jg har börjat lära mej lite om jquery, och skulle gärna vilja ha lite hjälp med följande:

jag har ett formulär:

 

<form>
<input name="logpswx" id="pswx" type="password" size="6" maxlength="6" style="background-color: #aabbcc;" />
<input name="sndlog" type="button" value="login"
onclick='var psw=$("#pswx");alert(psw);'  />
</form>

 

jag skriver in nåt och klickar o får av alert: [object Object] i stället för det inslagna värdet.

Säkert nåt hemskt enkelt.

 

Link to comment
Share on other sites

var psw = $("psw").val();

 

 

Hade inte du en liknande fråga för inte så länge sedan?

 

jquery gör sig bäst i head, anser jag.

Mycket överskådligare också, vilka funktioner och metoder man använder sig av.

 

Ta bort all onclick m m i markupen, lägg till ett id för inloggningsknappen och lägg istället till detta i head-avsnittet

<script type="text/javascript">
$().ready(function(){
 $("#loginbutton").click(function(){
   var psw = $("#psw").val();
   alert(psw);
 });
});
</script>

 

Link to comment
Share on other sites

Nej, du får gå in på tråden genom att klicka på trådens rubrik ("SVAR: jquery" i detta fall )

 

Poäng gillar jag :):thumbsup:

 

Link to comment
Share on other sites

Måste finnas nån liten mackagrejs kvar, det händer lixom inget.

Så här ser formulärknapparna ut:

<input name="logpswx" id="psw" size="6" maxlength="6">
<input name="sndlog" id="loginbutton" type="button" value="login">

 

Så här ser scriptet ut som jag lagt sist i head:

<script type="text/javascript">
$().ready(function(){
 $("#loginbutton").click(function(){
   var psw = $("#psw").val();
   alert(psw);
 });
});
</script>

 

Det kommer inte nån alert!

 

 

 

Link to comment
Share on other sites

och du har väl

<script src="jquery.js" type="text/javascript"></script>

i Head också antar jag?!

 

Får du felmeddelande?

 

Link to comment
Share on other sites

Jonas_Bo, tack för dim hjälp. Jag placerade det i onclick så länge, kompleterade med .val() som du angav, och det funkar. Ska kolla den andra metoden lite fristående.

FRÅGA1:

Om jag vill köra ett script i jquery utan att lägga ut nåt, xvis en databasuppdat, hur ser detta ut i princip? Säg att jag vill köra 'updat.php' med parametern 'par'?

FRÅGA2:

Om jag kör

$('div1').load('updat1.php')

och direkt efter detta vill köra

$('div2').load('updat2.php') 

hur ser detta ut i princip?

 

Det finns en massa info om jquery på nätet, men precis som med det mesta annat är det i stort sett omöjligt att hitta info om det allra enklaste.

 

[inlägget ändrat 2009-01-20 07:44:27 av jan-erik]

Link to comment
Share on other sites

om man inte behöver göra något med resultatet kan man använda sig av get, eller post. Det beror på hur variabeln skall skickas, men jag antar get i detta fallet.

 

$("#knapp").click(function(){ 
 //ajax start
 $.get("updat1.php", { par: "parametervärde" },
   function(data){
     alert("Resultat: " + data);
 });
 //ajax slutar
});

 

Om du vill köra ajax direkt skippar du click-händelsen och lägger in $.get under $().ready istället.

 

skall du köra en till ajax-funktion kopierar du den ovan och lägger undertill.

om funktion2 endast skall köras om funktion1 har lyckats kan man köra den i callbacken. Man ersätter då alerten med funktionen.

$("#knapp").click(function(){ 
 //ajax1 start
 $.get("updat1.php", { par: "parametervärde" },
   function(data){
      //ajax1 start om ajax 1 har lyckats
 $.get("updat2.php", { par: "parametervärde" },
   function(data){
     alert("Resultat ajax2: " + data);
 });
 //ajax2 slutar
 });
 //ajax slutar
});

Man behöver inte ha en callback (alert i detta fall) om man inte vill.

 

mer ajax-get-exempel här:

http://docs.jquery.com/Ajax/jQuery.get#urldatacallbacktype

 

Varför vill du köra två ajax-requests, kan du inte köra de i samma php-fil? (det kanske bara var ett exempel...)

 

[inlägget ändrat 2009-01-20 09:02:36 av Jonas_Bo]

Link to comment
Share on other sites

Archived

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



×
×
  • Create New...