Archief - [PROG] [javascript] Form submit

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Bavo_acku

Legacy Member
Code:
       function choosePdf(item) {
        var index = document.getElementById('mainTemplate_content1:searchResumeContent_subview1:searchResumeForm1:criteria').value;
        document.getElementById('mainTemplate_content1:searchResumeContent_subview1:searchResumeForm1:criteria').value = index;
        alert("Doing submit()");
        document.getElementById('mainTemplate_content1:searchResumeContent_subview1:searchResumeForm1').submit();
        alert("Done submit()");


        return false;


       }

Er bestaat een form in die HTML die eruit ziet als:
<h:form id="searchResumeForm1">

De JS herlaad de pagina maar doet geen POST whatsoever, dat maakt me triest. Is submit() de juiste optie? Moet er meer gebeuren dan dat? Als ik op de knop druk zonder een submit via JS lukt alles wel.
(de javascript submit is er omdat het ook moet posten als je eem item kiest uit een CSS gegenereerde lijst (Ajax etc))

Bavo_acku

Legacy Member
Dat is nogal een ingewikkeld systeem van gekoppelde functies en callbacks, ze wordt in elk geval correct opgeroepen want de alerts komen juist door (al is het wel vreemd dat de tweede alert nog door komt, aangezien de pagina al veranderd/reloaded is)

dJeez

Legacy Member
Vervang die <h:form ...> alvast maar door <form ...> (idem voor de close-tag trouwens). Of zit er nog een soort van preprocessing tussen misschien?

BTW Moet de ID van uw form niet heel de boterham bevatten ipv enkel "searchResumeForm1"?

WHiSPy

Legacy Member
Ik denk dat die <h:form...> een jstl/struts/spring/whatever mvc framework tag is, hoor. :)

dJeez

Legacy Member
WHiSPy zei:
Ik denk dat die <h:form...> een jstl/struts/spring/whatever mvc framework tag is, hoor. :)
Dat bedacht ik mij ook net, vandaar de aanvulling :p. Post anders de gegenereerde paginasource (of een nuttig fragment ervan) hier eens, want nu is 't moeilijk om te zien wat er precies zou foutlopen.

Bavo_acku

Legacy Member
Code:
<form id="mainTemplate_content1:searchResumeContent_subview1:searchResumeForm1" method="post" action="/javacareers-webclient/jobs/employer/resumes.jsf" enctype="application/x-www-form-urlencoded">
<table id="mainTemplate_content1:searchResumeContent_subview1:searchResumeForm1:searchResumeForm1_grid1">
<tbody>
<tr>
<td><span id="mainTemplate_content1:searchResumeContent_subview1:searchResumeForm1:searchResumeForm1_group1">
<link type="text/css" rel="stylesheet" href="faces/textfield_css.ajax" />
<script type="text/javascript" src="faces/textfield_js.ajax"></script>
<div id="menu-popup13" style="position: absolute; top:170px;left:140px;visibility:hidden" class="popupFrame"></div>
<input id="mainTemplate_content1:searchResumeContent_subview1:searchResumeForm1:criteria" autocomplete="off" type="text" name="mainTemplate_content1:searchResumeContent_subview1:searchResumeForm1:criteria" value="Search" class="searchInputField" onfocus="doCompletion('mainTemplate_content1:searchResumeContent_subview1:searchResumeForm1:criteria','menu-popup13','#{resumeAction.processAjaxSearch}',function(item) { return choosePdf(item); },function(item) { return extractPdf(item); });" onkeyup="doCompletion('mainTemplate_content1:searchResumeContent_subview1:searchResumeForm1:criteria','menu-popup13','#{resumeAction.processAjaxSearch}',function(item) { return choosePdf(item); },function(item) { return extractPdf(item); });" onblur="stopCompletionDelayed('menu-popup13');" /><input id="mainTemplate_content1:searchResumeContent_subview1:searchResumeForm1:searchResumeForm1_cmd1" type="submit" name="mainTemplate_content1:searchResumeContent_subview1:searchResumeForm1:searchResumeForm1_cmd1" value="Go" /></span></td>
</tr>
</tbody>
</table>
<input type="hidden" name="mainTemplate_content1:searchResumeContent_subview1:searchResumeForm1" value="mainTemplate_content1:searchResumeContent_subview1:searchResumeForm1" /></form>

Volgens de HTTP headers stuurt ie hetzelfde dan bij een manuele klik, behlave de inhoud van de submit button zelf.
Dat blijkt het verschil te geven tussen processing en niet in JSF

dJeez

Legacy Member
Ja uiteraard, bij een manuele klik zal de waarde van de submit button erbij zijn, als je echter iets selecteert uit de lijst (via AJAX) is die waarde er niet bij. Dat lijkt mij vrij logisch aangezien je in 't laatste geval niet op de button hebt geklikt. Als ik je goed begrijp zit er dus blijkbaar eerder een fout in je afhandeling, waar je wellicht controleert of die button werd geklikt of niet...

Wat je zou kunnen doen (als JSF dwarsligt - ik heb daar nog geen ervaring mee) is een hidden var toevoegen aan de form met dezelfde naam als de submit button als je via AJAX een item selecteert... Dat lijkt mij niet echt de aangewezen oplossing, maar zou wel moeten werken :p.

Bavo_acku

Legacy Member
Lijkt een leuke hack, behlave dan dat je als je dezelfde form gebruik, tweemaal dezelfde field gaat hebben wanneer je op de submit knop drukt.
Het heeft iets te maken met de verwerking ja, iets vreemds. Aangezien dat achter de schermen gebeurd is dat moeilijk(er) te traceren

dJeez

Legacy Member
Bavo_acku zei:
Lijkt een leuke hack, behlave dan dat je als je dezelfde form gebruik, tweemaal dezelfde field gaat hebben wanneer je op de submit knop drukt.
Neen, beter lezen : die hidden var enkel toevoegen als er iets uit de lijst geselecteerd werd. Kan perfect via javascript...

dJeez

Legacy Member
Bavo_acku zei:
Ferm veel arrogantie in die reply opgemerkt. Bedankt.
:oink: Pardon? Blijkbaar had je erover gelezen en ik preciseer dus wat ik bedoel, als je dàt al als arrogant interpreteert... :doh:

Bavo_acku

Legacy Member
dJeez zei:
:oink: Pardon? Blijkbaar had je erover gelezen en ik preciseer dus wat ik bedoel, als je dàt al als arrogant interpreteert... :doh:

Als je daarover technisch wilt worden:
"Beter lezen" is een bevel, kortaf en duidt op een mogelijke negeatieve ondertoon (zeker als het als is voorafgegaan door ontkenning).
Het typt vlotter dan "Je hebt er waarschijnlijk (let op de waarschijnlijk) per ongeluk (mag, hoeft niet) over gelezen maar (de maar is onvermijdelijk, yet, de opstelling in het begin is al een gebaar van vriendelijkheid genoeg).

"...": Is een weggever van kwaadwilligheid. Het lijkt u niet nodig nog verder uit te leggen tegen iemand die niet kan begrijpen wat je zegt. "..." mag enkel in een opsomnming gebruikt worden, elders is het gewoon het equivalent van IRL wenkbrauwen optrekken en hoofd meewarig schudden.

Zo, dat weten we dan weer ook.
Uw verbazing na mijn opmerking is dan ook amateuristisch gespeeld op het huidige niveau van Familie.

dJeez

Legacy Member
Je bent gewoon ultra-paranoïde dus.

In plaats van hier je tijd te steken in onnozel te doen zou je die imho beter investeren in het oplossen van je problemen, maar soit op mijn hulp hoef je dus echt niet meer te rekenen.

En als 'k echt arrogant wil zijn, dan zal je 't wel merken. FUCKING NITWIT

Bavo_acku

Legacy Member
Het probleem is al lang opgelost mijn beste. Paranoide gedrag is dat niet, eerder ervaring.
Ontken het maar. Men kan gelukkig erg selectief zijn in omgang met mensen op het internet.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan