Focus

  • Themenstarter Themenstarter loonybin
  • Beginndatum Beginndatum
L

loonybin

wir (zwei Programmierer) haben eine kleine schwierigkeit. wir haben ein fomular bzw ein feld wessen wir die höhe und breite über javascript berechnen d.h. wen ich bei der breite etwas eingebe wird die höhe automatisch davon berechnet. soweit so gut. jetzt ist es so das der focus() auf zurücksetzten gestellt ist und nicht auf weiter.

unser problem ist jetzt das wir es nicht schaffen diesen focus auf weiter zu setzten. zu beachten ist das es im hintergrund ein cms lauft. es nennt sich drupal der version 5.x

habt ihr eine idee?

wären um jede hilfe dankbar.
 
Moin,

könntest du mal kurz erläutern, welche Auswirkungen es bei euch hat, wenn man den Fokus auf zurücksetzen stellt?
Denn das originale JS- focus() ansich kann man nicht auf irgendetwas stellen....man gibt ihn lediglich an ein Element.
 
das kann ich. also zurücksetzten heist das das hochgeladene bild aus der session gelöscht wird und de defaults geladen wird. das heist. also das dan die bildhöhe 70 ist und die breite 50.

hier ist der code wo das ganze erzeugt wird. also bildberechnung (höhe,breite) und das absenden.


//Eingabefeld für die Bildhöhe
$form['height'] = array(
//'#prefix' => '<div style="float:left;margin-right:20px;">',
//'#suffix' => '</div>',
'#type' => 'textfield',
'#title' => 'Höhe',
'#size' => 3,
'#default_value' => $height_cm,
'#suffix' => '</td><td style="padding:0px 0px 13px 0px;" align="left" valign="bottom"><span style="font-size:0.8em;">min 40 cm / max 100 cm</span></td></tr></table><div style="clear:both;"></div>',
'#id' => 'df_height',
'#prefix' => '<div id="error"></div><table style="margin:0px;"><tr><td style="padding:0px;">',
'#attributes' => array('onkeyup' => 'xajax_update_prize(this.value, document.getElementById(\'df_width\').value, this.id);'),
);
//Eingabefeld füt Bildbreite
$form['width'] = array(

'#type' => 'textfield',
'#title' => 'Breite',
'#size' => 3,
'#default_value' => $width_cm,
'#suffix' => '</td><td style="padding:0px 0px 13px 0px;" align="left" valign="bottom"><span style="font-size:0.8em;">min 40 cm / max 100 cm</span></td></tr></table><div style="clear:both;"></div>',
'#id' => 'df_width',
'#prefix' => '<div id="error"></div><table style="margin:0px;"><tr><td style="padding:0px;">',
'#attributes' => array('onkeyup' => 'xajax_update_prize(document.getElementById(\'df_height\').value, this.value, this.id);'),
);
//Der berechnete Preis
$form['calculated_prize'] = array(
'#type' => 'hidden',
'#value' => 5,
'#prefix' => '<div id="calculated_prize"><font size="5">CHF '.$prize.' .-</font></div>'.$upload,
'#suffix' => '</td><td align="center" valign="top" style="border-left:20px white solid;width:400px;background-color:#49A8EC;">',
'#id' => 'df_prize',
);
//Die Bildvorschau
$form['preview_picture'] = array(
'#type' => 'hidden',
'#value' => 5,
'#prefix' => '

<table style="width:auto;">
<tr>
<td align="right" valign="middle">
</td>
<td align="right" valign="middle">
<div id="preview_picture" style="width:'.$width_px.'px;height:'.$height_px.'px;background-color:white;border-style:solid;border-color:grey;border-width:5px;">'.$img_preview.'</div>
</td>
<td align="left" valign="middle" >
<div id="calculated_height">Höhe<br>'.$height_cm.' cm</div>
</td>
</tr>
<tr>
<td>
</td>
<td align="center" valign="top">
<div id="calculated_width">Breite<br>'.$width_cm.' cm</div>
</td>
<td>
</td>
</tr>
</table>',
'#id' => 'df_preview_picture',

);
$form['submit1'] = array(
'#type' => 'submit',
'#value' => t('Zurücksetzen'),
);
//Wenn bereits ein Bild hochgeladen ist, dann den Weiter Button präsentieren
if($df_image->filename){
$form['submit2'] = array(
'#type' => 'submit',
'#value' => t('Weiter'),
'#suffix' => '</td></tr></table></div>'
);
}
else {
$form['submit2'] = array(
'#type' => 'submit',
'#value' => t('Weiter ohne Bildupload'),
'#suffix' => '</td></tr></table></div>'
);
}
return $form;
}
 
Mmmmh, so recht verstehe ich es immer noch nicht :-)

Meinst du etwas diesen Submit-Button da,
Code:
$form['submit1'] = array(
'#type' => 'submit',
'#value' => t('Zurücksetzen'),
);
//Wenn bereits ein Bild hochgeladen ist, dann den Weiter Button präsentieren
if($df_image->filename){
$form['submit2'] = array(
'#type' => 'submit',
'#value' => t('Weiter'),
'#suffix' => '</td></tr></table></div>'
);
}
else {
$form['submit2'] = array(
'#type' => 'submit',
'#value' => t('Weiter ohne Bildupload'),
'#suffix' => '</td></tr></table></div>'
);

Dass momentan der Fokus immer auf dem 1.(rot markierten) Button ist, ihr ihn aber auf dem 2.(grün markierten) haben wollt.?

Um das zu sagen, wäre es gut, wenn du mal den gesamten generierten HTML-Code dieses Formulars posten könntest, damit man sehen kann, wie man den Button am besten anspricht.

Generell würde es so laufen:
Code:
document.namedesformulars.namedeszweitenbuttons.focus()
(wobei dort mit name wirklich das name-Attribut gemeint ist, und nicht eine ID)
 
muss den html code zuerst generieren da er ja über das cms drupal v5.x gemacht wird und wir mit php objektorientiert programmieren wird das etwas schwierger aber werde mal versuchen das so zu posten.

um erlich zu sein du hast es geschaft mich zu verstehen das wir den zweiten submit button wollen das dort der fokus gesetzt ist.

*sorry für die spähte antwort* hatten in der schweiz den nationalfeiertag gehabt ^^
 
schwierigkeit konnte gelöst werden. wir haben drupal sozusagen umgangen bzw gesaagt dases in drupal einen fehler gibt aber mit einem unsichtbaren button behoben werden kann.

thread kann geschlossen werden. danke für die hilfe. :)
 

Neue Beiträge

Zurück