我在表单中有这些按钮,我不想触发提交,它们是简单的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;
});
但这也行不通。
答案 0 :(得分:2)
使用
<button type="button" class="btn">text</button>
代替。
按钮的默认type
为submit
。
答案 1 :(得分:1)
您可以创建simple button而不是submit button。如果你在$this->Form-end()
中加入参数,那么你默认会得到一个提交按钮。但您可以轻松添加额外的按钮(默认情况下不附加任何功能)并在没有提交按钮的情况下结束表单。
这样的事情应该做
echo $this->Form->button('A button',
array('class' => 'btn'));
echo $this->Form->end();
另外,请检查其他类型的操作触发按钮,例如postButton和postLink,这些按钮更适合您想要做的事情,而不是阻止按钮的默认功能。
答案 2 :(得分:0)
检查......
$('.btn').live('click', function(e){
e.preventDefault();
return false;
});
OR
$('.btn').on('click', function(e){
e.preventDefault();
return false;
});