cakePHP表单按钮,无需提交


cakePHP form button without submit

我把这些按钮放在一个表单中,我不想触发提交,它们是简单的html按钮

<?php echo $this->Form->create('Point'); ?>
...
<button class="btn">text</button> => this one shouldn't trigger a submit
...
<?php echo $this->Form->end(array('label' => 'add', 'div' => false, 'escape' => false, 'class' => 'btn btn-default btn-block')); ?>

但是cakephp总是将这些作为提交处理,就像常规的表单结束按钮一样。有什么办法可以防止这种情况发生吗?

我尝试使用jquery

$('.btn').click(function(e){
    e.preventDefault();
    return false;
});

使用

<button type="button" class="btn">text</button>

默认type for按钮为submit

您可以创建一个简单的按钮而不是提交按钮。如果你把参数放在$this->Form-end()里面,你会得到一个默认的提交按钮。但是,您可以轻松地添加额外的按钮(默认情况下不附加功能),并在没有提交按钮的情况下结束表单。

像这样的东西应该做

echo $this->Form->button('A button', 
                         array('class' => 'btn'));
echo $this->Form->end();

另外,检查其他类型的动作触发按钮,如postButton和postLink,也许它们更适合你想做的事情,而不是阻止按钮的默认功能。

Check It…

$('.btn').live('click', function(e){
    e.preventDefault();
    return false;
});

$('.btn').on('click', function(e){
    e.preventDefault();
    return false;
});