来自表单属性的 Javascript 回调

标签 javascript jquery post callback

我设置了一些自动表单提交代码。基本上,当提交表单时,javascript 会处理它,查找所有输入等,并通过 ajax 将数据发送到表单的 action attr。

$j('body').delegate('form', 'submit', function(e) {
    e.preventDefault();
    if($j(this).prop('data-callback', true))
        asf.forms.processForm($j(this).attr('name'), $j(this).attr('data-callback'));
    else
        asf.forms.processForm($j(this).attr('name'));
});

但我需要包括回调。我需要使代码全局化,所以我不能为每种形式编写任何细节。所以我想像这样添加一个带有回调函数名称的属性:

<form action="" method="" data-callback="posts.addPost()">

问题是我不知道如何在 javascript 中触发该函数。有任何想法吗? 我不能使用 onsubmit,因为我需要访问所有表单信息,这意味着在 ajax 响应中执行此回调。

谢谢

最佳答案

我知道 eval 是邪恶的,但它似乎是唯一合理的解决方案:

eval($(form).attr('data-callback'));

如果你只在 data-callback 属性中放置方法名称(例如 data-callback="posts.addPost"),则可以在没有 eval 的情况下调用它:

var methodName = $(form).attr('data-callback');
var parts = methodName.split('.');
var method = window;

$(parts).each(function(){
    method = method[this];
});

method();

关于来自表单属性的 Javascript 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9228292/

相关文章:

javascript - 为什么 document.write ("...&lt;/script&gt;") 会破坏我的代码?

javascript - 检查一个单词是否有多个字母

javascript - 有人可以告诉我如何将 watchposition() 函数与 getCurrentPosition 一起使用吗?

php - <表单操作="<?=$_SERVER[' PHP_SELF']? >"method="帖子">

javascript - 贪婪与 JavaScript 中的尾随贪婪正则表达式

javascript - 如何在 jQuery 中更改一段文本的颜色?

javascript - 在 ajax 处理期间,当我们在弹出窗口外单击时,不应关闭弹出窗口

jQuery $.post();

javascript - PHP - 发布到自己而不刷新(或其他选择)

javascript - 用mysql比较两个表