我正在编写一个插件,在后端设置中定义了一些字段。
该字段之一是包含按钮的部分字段,由于数据属性API,它会触发 Ajax 请求。
<button type="button" class="btn btn-danger" data-request="onReset">
My button
</button>
我应该在哪里放置“onReset()
”功能?我试图把它放在我的设置模型中,甚至尝试创建一个设置控制器(虽然没有必要使用设置页面),但我总是得到以下错误:
Ajax handler 'onReset' was not found
我不知道如何能够触发onReset()
功能,熟悉Laravel / OctoberCMS
的人能指出正确的方向吗?
由于
答案 0 :(得分:0)
如果您有onReset事件,则在HTML表单中,您可以在其中添加您的电话:
function updateForm()
{
$.each($('form').find(":input"), function(){
$.uniform.update($(this));
});
}
<form onReset="updateForm();">
在这个link中,您可以在点击事件中自行订购:
$(document).ready(function() {
$("input:reset").click(function() { /click event
this.form.reset();
window.alert($("input:text").val());
return false;
});
});
答案 1 :(得分:0)
设置由\System\Controllers\Settings
呈现,因此您编写的内容将由\System\Controllers\Settings
控制器类处理,
所以我们需要扩展
\System\Controllers\Settings
,我们可以添加动态 那里的方法,
在plugin's boot method
内你需要编写此扩展代码
我在此示例中将
onReset
处理程序重命名为onPrefixReset
以避免任何其他冲突。
public function boot() {
\System\Controllers\Settings::extend(function($model) {
$model->addDynamicMethod('onPrefixReset', function() {
\Flash::success('You did it!');
// OR
//return ['some data data'];
});
});
}
onPrefixReset
:我们在这里添加了一些Prefix
,因此我们不小心覆盖了内部原始方法。
现在位于_partial
<button type="button" class="btn btn-danger" data-request="onPrefixReset">
My button
</button>
所以现在这个 onPrefixReset
ajax处理程序在\System\Controllers\Settings
中定义为我们动态执行;)它将处理您的请求。
您可以从此处返回任何数据,并会在back-end settings page
收到。