correct target attribute for postLinks

This commit is contained in:
euromark 2012-12-12 11:23:41 +01:00
parent 1516434d61
commit ae7f629eff
2 changed files with 22 additions and 3 deletions

View file

@ -6317,6 +6317,19 @@ class FormHelperTest extends CakeTestCase {
$result = $this->Form->postLink('Delete', '/posts/delete', array('data' => array('id' => 1)));
$this->assertContains('<input type="hidden" name="data[id]" value="1"/>', $result);
$result = $this->Form->postLink('Delete', '/posts/delete/1', array('target' => '_blank'));
$this->assertTags($result, array(
'form' => array(
'method' => 'post', 'target' => '_blank', 'action' => '/posts/delete/1',
'name' => 'preg:/post_\w+/', 'id' => 'preg:/post_\w+/', 'style' => 'display:none;'
),
'input' => array('type' => 'hidden', 'name' => '_method', 'value' => 'POST'),
'/form',
'a' => array('href' => '#', 'onclick' => 'preg:/document\.post_\w+\.submit\(\); event\.returnValue = false; return false;/'),
'Delete',
'/a'
));
}
/**

View file

@ -1720,12 +1720,18 @@ class FormHelper extends AppHelper {
$formName = uniqid('post_');
$formUrl = $this->url($url);
$out = $this->Html->useTag('form', $formUrl, array(
$formOptions = array(
'name' => $formName,
'id' => $formName,
'style' => 'display:none;',
'method' => 'post'
));
'method' => 'post',
);
if (isset($options['target'])) {
$formOptions['target'] = $options['target'];
unset($options['target']);
}
$out = $this->Html->useTag('form', $formUrl, $formOptions);
$out .= $this->Html->useTag('hidden', '_method', array(
'value' => $requestMethod
));