Cakephp:使用javascript时,帖子中不包含按钮名称

时间:2019-03-26 09:24:38

标签: javascript php post cakephp

我有一个带有多个提交按钮的表单:

<?php if($is_admin){    
                        echo $this->Form->submit(__('Direct Assign'), ['id' => 'DAbtn', 'name' => 'btn', 'class' => 'button']);
                        echo $this->Form->button(__('Direct Assign & New Task From Copy'), ['id' => 'DANTbtn', 'name' => 'btn', 'class' => 'button']);} ?>
                    <?= $this->Form->button(__('Save as pending'), ['id' => 'SPbtn', 'name' => 'btn', 'class' => 'button']) ?>
                    <?= $this->Form->button(__('Save as pending & New Task From Copy'), ['id' => 'SPNTbtn', 'name' => 'btn', 'class' => 'button']) ?>
                    <?= $this->Form->end() ?>

因此,在控制器中,我可以检查单击了哪个按钮:

$this->request->getData('btn')

但是在我为这些按钮添加了javascript之后,它停止了在Post变量中包含'btn'

//Don't allow multiple submit, disable submit button after submission of the form
    $( function() {
        $("#newTaskForm").submit( function() { 
            $(".button").attr("disabled", true);
            return true;

        });
    });

所以我不得不删除js代码。可以解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

这就是HTML的工作方式,禁用元素的值未发送。     如果要防止多次提交,请使用只读属性而不是禁用属性。

$(function() {
    $("#newTaskForm").submit( function() { 
        $(".button").attr("readonly", true);
        return true;
    });
});

或放置任何装载程序以避免多次发送