moin :)
Habs hinbekommen :) *freu*
War im Endeffekta gar nicht sooo schwierig.
Vor allem hat mir die Info geholfen, dass man onSubmit unterbrechen kann, in dem man ein false zurückgibt.
Meine Lösung ist jetzt folgendermaßen:
- die Form (bin zu faul das in HTML zu übersetzen - wichtig ist ja eh nur der onsubmit-Aufruf):
<html:form target="tabContent" onsubmit="return checkTextField('submit', 'calText')" action="/OrderQueryAction" >
Hier übergebe ich jetzt neben der ID des Textfeldes auch den Kontext in dem die Funktion aufgerufen wird (in diesem Fall Submit)
- das Textfeld:
<html:text onchange="checkClear()" styleId="calText" name="orderQueryForm" property="pubdate" onblur="checkTextField('blur', this.id)"/>
Wichtig ist auch hier nur der onblur-Aufruf --> es ist die gleiche Funktion wie bei submit - nur eben mit dem Kontext "blur"
- Die Funktion:
function checkTextField(method, txtId){
if(method!="submit"){
updateTextField(txtId);
return false;
}
else{
window.setTimeout('document.forms[0].submit()', 100);
return false;
}
}
Hier prüfe ich aus welchem Kontext der Aufruf kommt - nur bei "blur" soll das Feld ein update bekommen. (weil ja jedes onsubmit ein blur hinter sich her zieht bzw. vor sich her schiebt - und zweimal muss nicht sein)
Ist der Aufruf allerdings von submit soll ein Submit ausgeführt werden (klar *G*) - das allerdings zeitverzögert, damit das update Zeit hat, fertig zu werden und so das "neue" submit die aktuellen Werte übergibt. Das "eigentliche" submit breche ich ab, in dem ich false zurückgebe.
Bissl umständlich - aber es funktioniert ;)
Ich danke euch allen für eure Geduld und vor allem für eure Hilfe :)
liebe Grüße aus Berlin
lina-
Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)