Ik ben bezig om met ajaxform formulieren te verzenden.
Dit werkt natuurlijk goed, maar aangezien ik dit op een stuk of 4 formulieren wil toepassen, vraag ik me af of onderstaande code niet wat korter kan. Het enige verschil is namelijk loginform <-> registerform en loginresult <-> registerresult zoals jullie kunnen zien.
Iemand een idee?
Code:$(document).ready(function() { $('#loginform').ajaxForm({ target: '#loginresult', success: function() { $('#loginresult').slideDown('slow'); } }); $('#registerform').ajaxForm({ target: '#registerresult', success: function() { $('#registerresult').slideDown('slow'); } }); });
- [jQuery] Kan dit korter/makkelijker?
-
06-02-2011, 19:49 #1
- Berichten
- 1.044
- Lid sinds
- 16 Jaar
[jQuery] Kan dit korter/makkelijker?
-
-
06-02-2011, 20:38 #2
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: [jQuery] Kan dit korter/makkelijker?
Code:$(document).ready(function() { $("form").has(".ajaxform").ajaxForm({ target: '#' + this.attr('id') + 'result'; succes: function() { $('#' + this.attr('id') + 'result').slideDown('slow'); } }); });
<form class="ajaxform" id="register"> ... </form>
Zal dus de div #registerresult gebruiken.
Geen idee of het zo werkt, maar je kunt het proberen.
-
06-02-2011, 21:17 #3
- Berichten
- 1.044
- Lid sinds
- 16 Jaar
Re: [jQuery] Kan dit korter/makkelijker?
Bedankt voor de reactie.
Het werkt op deze manier echter niet, en dat terwijl het in theorie zou moeten werken volgens mij...
-
06-02-2011, 21:19 #4
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: [jQuery] Kan dit korter/makkelijker?
Zet eens voor
target : ....
de regel
alert('test' + this.attr('id')); en kijk eens of hij een ID mee terugstuurt en of hij überhaupt in de functie komt.
-
06-02-2011, 21:47 #5
- Berichten
- 1.044
- Lid sinds
- 16 Jaar
Re: [jQuery] Kan dit korter/makkelijker?
Het vreemde is dat hij dan geen alert opent...
-
06-02-2011, 22:00 #6
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: [jQuery] Kan dit korter/makkelijker?
Oh lol, dat klopt natuurlijk, dat kan natuurlijk niet binnen die ajaxForm() functie.
Probeer eens;
Code:$(document).ready(function() { $("form").has(".ajaxform").ready(function() { alert('test'); }); });
-
06-02-2011, 22:09 #7
- Berichten
- 1.044
- Lid sinds
- 16 Jaar
Re: [jQuery] Kan dit korter/makkelijker?
Dat werkt wel; hij weergeeft immers de alert met "test". Ook wanneer er nergens een class="ajaxform" te vinden is, komt het in beeld.
Als ik alert('test'); vervang door alert('test' + this.attr('id')); weergeeft hij helemaal niets...
-
06-02-2011, 22:28 #8
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: [jQuery] Kan dit korter/makkelijker?
Hmm dat is natuurlijk ook weer waar.. hij voert die functie has() gewoon uit dus die alert is dan weer logisch. Dan zouden we misschien met een foreach moeten werken, even kijken hoe dat ook alweer gaat.
Probeer eens:
Code:$('form:has('.ajaxform')).each(function(index) { alert( $(this).attr('id') + ' is het id' ); });
-
06-02-2011, 22:52 #9
- Berichten
- 1.044
- Lid sinds
- 16 Jaar
Re: [jQuery] Kan dit korter/makkelijker?
Er verschijnt weer geen alert...
-
07-02-2011, 01:08 #10
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: [jQuery] Kan dit korter/makkelijker?
Ik ga even wat testen voor je op mijn eigen hosting :)
Aanvullend bericht:
Waarom ook lastig doen en forms vinden die de 'ajaxform' class hebben, laten we gewoon één class nemen voor de forms die via ajaxForm() moeten lopen, voor het gemak: aForm
Maak een code in je body:
Code:<form class="aForm" id="register"> <input type="text" name="bla" /><input type="submit" name="submit" value="submit" /> </form> <div id="registerresult"></div>
Code:<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $('.aForm').each(function() { alert($(this).attr('id') + ' form found'); $('#'+$(this).attr('id')+'result').text('test'); }); }); </script>
Code:<script type="text/javascript"> $(document).ready(function() { $('.ajaxform').ajaxForm({ target: '#' + $(this).attr('id') + 'result', succes: function() { $('#' + $(this) + 'result').slideDown('slow'); } }); }); </script>
Als je dan nu een form toevoegt met id="signup" en een div met id="signupresult" zou er 2x een alert moeten komen en 2x test onder de forms.Laatst aangepast door Joshua de Gier : 07-02-2011 om 01:17 Reden: Automatisch samengevoegd.
-
07-02-2011, 10:16 #11
- Berichten
- 1.044
- Lid sinds
- 16 Jaar
Re: [jQuery] Kan dit korter/makkelijker?
Enorm bedankt voor alle hulp! Zo kom ik steeds verder!
Toch werkt het nog niet helemaal helaas...
Als ik onderstaande code gebruik, krijg ik gewoon alle popupjes en sliden de results gevuld met "test" naar beneden:
Code:$(document).ready(function() { $('.aForm').each(function() { alert($(this).attr('id') + ' form found'); $('#'+$(this).attr('id')+'result').text('test'); $('#' + $(this).attr('id') + 'result').slideDown('slow'); }); });
Code:$(document).ready(function() { $('.aForm').ajaxForm({ target: '#' + $(this).attr('id') + 'result', succes: function() { $('#' + $(this).attr('id') + 'result').slideDown('slow'); } }); });
-
07-02-2011, 12:42 #12
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: [jQuery] Kan dit korter/makkelijker?
Ik ben vergeten de each erbij te plaatsen :x hopelijk is dat het laatste beetje
Code:<script type="text/javascript"> $(document).ready(function() { $('.ajaxform').each(ajaxForm({ target: '#' + $(this).attr('id') + 'result', succes: function() { $('#' + $(this) + 'result').slideDown('slow'); } }); }); </script>
Laatst aangepast door Joshua de Gier : 07-02-2011 om 21:45
-
07-02-2011, 17:24 #13
- Berichten
- 1.044
- Lid sinds
- 16 Jaar
Re: [jQuery] Kan dit korter/makkelijker?
Ik begrijp er niets meer van...
Ook bovenstaande code werkt niet, zelfs niet wanneer ik er het volgende van heb gemaakt:
Code:$(document).ready(function() { $('.ajaxform').each(ajaxForm({ target: '#' + $(this).attr('id') + 'result', succes: function() { $('#' + $(this).attr('id') + 'result').slideDown('slow'); } })); });
-
07-02-2011, 21:47 #14
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: [jQuery] Kan dit korter/makkelijker?
Dan kan het volgende nog:
Code:<script type="text/javascript"> $(document).ready(function() { $('.ajaxform').each(function(){ $(this).ajaxForm({ target: '#' + $(this).attr('id') + 'result', succes: function() { $('#' + $(this) + 'result').slideDown('slow'); } }) }); }); </script>
-
07-02-2011, 22:07 #15
- Berichten
- 1.044
- Lid sinds
- 16 Jaar
Re: [jQuery] Kan dit korter/makkelijker?
HET WERKT!!!
Heel erg bedankt Joshua!
Het enige wat nu niet werkt, is het effectje... Dat is raar...
EDIT:
Ik wilde het zo doen, dat er in de resultdiv style="display: none;" staat, zodat het effect deze div zichtbaar maakt door hem `open` te schuiven.
Het javascriptje werkt echter alleen waneer ik die style="display: none;" weghaal, maar dan werkt het effect dus niet...
Dan kan het volgende nog:
Code:<script type="text/javascript"> $(document).ready(function() { $('.ajaxform').each(function(){ $(this).ajaxForm({ target: '#' + $(this).attr('id') + 'result', succes: function() { $('#' + $(this) + 'result').slideDown('slow'); } }) }); }); </script>
Laatst aangepast door Joep B. : 07-02-2011 om 22:22
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic