嗨我有几个表单字段我希望点击按钮一个控件发送到操作1但是 点击按钮2,它必须被发送到动作2.目前我使用js动态更改表单动作点击。但还有其他解决方案。我不能在提交后以相同的方法进行检查,这必须是两种不同的方法。
在这种情况下,2个按钮是视图(需要显示html数据)和下载(与csv文件相同的数据)。我正在使用cakephp 1.2,但我觉得这更像是一般问题
答案 0 :(得分:3)
一个表单只能有一个操作。这是HTML的限制。要在客户端解决它,您需要Javascript。
听起来更好的想法是给每个提交按钮一个独特的name
和value
。这将像其他表单元素一样提交,因此您可以在Controller中检测单击了哪个按钮。从那里开始,应该只是在正常输出和下载之间切换控制器中的一些View逻辑。
答案 1 :(得分:0)
我发现解决方案很少
答案 2 :(得分:0)
HTML5具有此{/ p>的formaction属性
<form action="/url" id="myForm">
<input type="submit" value="save1" formAction="/url1" />
<input type="submit" value="save2" formAction="/url2" />
</form>
如果你需要,这是一个后备。
if (!('formAction' in document.createElement('input'))){
$('form').on('click', 'input[type=submit]', function (e) {
var attr = this.getAttribute('formAction');
if (attr) {
this.action = attr; //Set the form's action to formAction
}
});
}