一些背景:
在最近的一个项目中,我尝试编写一个简化的jQuery插件,它可以处理在更新各种输入时进行的一些Ajax调用.我将JavaScript函数编写为插件,以便我可以在各种输入上调用它,如下所示:
$("#email").updateChanges();
Run Code Online (Sandbox Code Playgroud)
然后,从插件中,我收集了输入的id,值等.
问题:
我真正想做的事情,但无法找到解决方案,是动态生成通过ajax传递的数据变量的名称.
为了更清楚,给定此功能:
jQuery.fn.updateChanges = function(){
this.bind('blur',function(){
var inputName = $(this).attr("name");
var inputValue = $(this).val();
$.post('/ajax/updateValue.php',
{ email: inputValue }, function(ret){
if (ret=='success') alert("all good!");
}
}
}
Run Code Online (Sandbox Code Playgroud)
...我如何呈现Ajax调用的数据,{ password: inputValue }而不是{ email: inputValue }在inputName变量是"password"而不是"email"时?这是一个非常具体的例子,但基本上我只是在寻找一种从单独的动态变量中读取数据变量名称的方法.
我试着window[inputName]没有运气,我非常相信这是不可能的.但是,如果有人有想法,我会非常感动.
顺便说一句,我们结束了去{ type: inputName, value: inputValue }代替,但(不要问我,我只是前端家伙:)它需要一点点的跑腿在PHP端.
提前致谢!