预编译javascript中的验证器函数
Precompiling a validator function in javascript
我正在编写一个自定义验证器包。其中一个要求是能够提供一个函数来运行控制值(例如检查两个密码是否匹配)。我希望能够做这样的事情:
<input data-validator-func="validFn" .../>
当输入被改变时,用输入的文本作为参数调用这个函数。我想让它运行得尽可能快,所以我想这样做:
fn = eval("function(val) { " + $(elem).attr('data-validator-func') + "(val);}");
这个想法是预编译一个函数调用,然后简单地做:
valid = fn($(elem).val());
然而,当我尝试这个firefox抛出一个异常在初始eval "SyntaxError: function statement requires a name"。
我不知道这里出了什么问题。有人能帮忙吗?
用parent括起来就行了
eval("( function(){} )");
指定你的代码
fn = eval("(function(val) { " + $(elem).attr('data-validator-func') + "(val);})");
尝试:
var code = $(elem).attr('data-validator-func');
var fn = new Function('val', code).bind(elem);
这比eval
更可靠,因为它不能将任何东西绑定到局部变量,而且它涉及的字符串操作更少。另外,bind
表示用户可以在函数中使用this
,它将引用该元素。
当然,更好的方法可能是不把JavaScript放在HTML属性中,但我不知道这里的全部情况
相关文章:
- 使用jquery验证函数不适用于select元素
- ng if不验证函数
- 我需要帮助来调用add()函数和验证函数,所以首先它将验证和然后添加
- 所需字段的验证函数更短
- Javascript验证函数总是回复无效
- 如何包含来自另一个 PHP 文件的 PHP 验证函数
- 如何编写验证函数以仅读取 XLS 和 XLSX 格式的 Excel 文件
- .each() 在 .clone() 之后用于验证函数
- 当 openssl 命令行验证签名时,节点.js验证函数不会验证签名
- 在 jQuery 中组合验证函数并替换类名
- 自定义验证程序客户端验证函数未触发
- 我们可以在 Java 脚本验证函数中包含 jQuery 吗?
- 具有返回值的验证函数
- JavaScript 编号验证函数
- 如何编写一个测试来验证函数是否已成功将字符串列表(在数组中指定)打印到屏幕上
- 将另一个验证函数附加到 Javascript 表单验证逻辑
- 简单的Javascript验证函数
- 我的表单未使用 jquery 验证函数进行验证
- ASP.NET - 在提交表单之前调用 javascript 验证函数
- 如何对输入标记调用验证函数