我把这些按钮放在一个表单中,我不想触发提交,它们是简单的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;
});