按下取消后,OctoberCMS Ajax表单仍然提交

时间:2017-03-23 16:36:21

标签: javascript jquery ajax octobercms

我正在使用基于OctoberCMSLaravel

我有一个使用Ajax标记的Twig复选框表单。

http://octobercms.com/docs/ajax/introduction

单击“删除”按钮时,会弹出一个提示确认的提示。但如果我按下取消,它仍然会提交。然而,在我切换到Twig / Ajax之前,这是有效的,但我需要处理常规表单不能执行的请求。

{{ form_open() }}

    <input type="checkbox" name="delete_queued[]" value="{{ record.name }}" />

    <button data-request="onDelete" onclick="return confirm('Delete All Checked?');return false;">Delete Checked</button>

{{ form_close() }} 

注意:data-request="onDelete"是一个php函数,它工作正常。这是onclick无法正常工作。

我尝试使用onclick之外的函数,结果相同:

<button data-request="onDelete" onclick="confirmDelete()">Delete Checked</button>

<script type="text/javascript">
    function confirmDelete() {
        if (confirm("Delete All Checked?")) {
            //submit php data-request
        }
        return false;
    }
</script>

我还尝试使用event.preventDefault()代替return false

2 个答案:

答案 0 :(得分:1)

我认为这可能是因为您正在混合数据属性API和JavaScript API。

相反,选择一个,它应该工作:

{{ form_open() }}

    <input type="checkbox" name="delete_queued[]" value="{{ record.name }}" />

    <button data-request="onDelete" data-request-confirm="Delete All Checked?">Delete Checked</button>

{{ form_close() }} 

答案 1 :(得分:0)

为什么不使用简单的the_title( sprintf( '<h2 class="entry-title"><a href="%s" title="%s">', esc_url( get_permalink() ), the_title_attribute('echo=0') ), '</a></h2>' );