我试图基于数据属性在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");
}

10-01 10:25