我试图基于数据属性在jQuery中创建一个函数。
<input type="text" name="name" id="name" data-validate="validatename" />
$("#name").blur(function(){
var validate = $(this).attr("data-validate");
var newvalidate = validate+"()";
newvalidate;
});
function validatename(){
alert("success");
}
调试将
newvalidate
的值设置为validatename()
,但是该函数无法运行。我该如何工作? 最佳答案
那是因为它不是函数,newvalidate
只是具有"validatename()"
值的字符串,仅此而已。要运行一个名称为字符串的全局函数,可以执行window[validate]()
:
<input type="text" name="name" id="name" data-validate="validatename" />
$("#name").blur(function(){
var validate = $(this).attr("data-validate");
window[validate]();
});
function validatename(){
alert("success");
}