Drupal 6にカスタムフォームがあり、フォーム送信を新しいウィンドウで開くことを除いて、すべてが完全に機能します。
drupal 6のフォームAPIに従って次のコードを使用しようとしましたが、機能しません
$ form ['save_and_print'] = array( '#type' => 'submit'、 '#value' => t( 'Save and Print')、 '#attributes' => array( 'target' => '_blank')、//これは機能しません );
誰かがこれを達成できましたか?助けてください!
フォームタグ自体にtarget
属性を設定する必要があります。
$form['#attributes']['target'] = '_blank';
このコードをフォーム関数のどこかに配置します。
更新:
この機能を特定のボタンに適用するには、注意が必要です。
$form['save_and_print'] = array(
'#type' => 'submit',
'#value' => t('Save and Print'),
'#attributes' => array('onclick' => 'this.form.target="_blank";return true;'),
);
これをクリックすると、親フォーム要素のtarget
属性が_blank
に設定され、これを押すと新しいタブが開きます。ボタンを1回クリックし、同じフォームの他のボタンをクリックすると、前のonclick
イベントがtarget
属性を_blank
に設定したため、新しいタブでも開きます。
回避策として、このonclickイベントをすべての送信に設定する必要があります。
同じページ/タブでフォームを送信するには:
$form['save'] = array(
'#type' => 'submit',
'#value' => t('Save'),
'#attributes' => array('onclick' => 'this.form.target="_self";return true;'),
);
新しいタブで送信するには:
$form['save_and_print'] = array(
'#type' => 'submit',
'#value' => t('Save and Print'),
'#attributes' => array('onclick' => 'this.form.target="_blank";return true;'),
);