Javascript 正确插入参数

Javascript 正确插入参数,javascript,forms,Javascript,Forms,我有一个需要验证的表单,决定做得和平常稍有不同,让主函数调用更小的函数,就像这样 function validate() { validate_this(*fieldId*); validate_that(*fieldId*); ... } 如果较小的函数是这样的: function validate_empty(formField) { if ( formName.formField.value.length = 0; ) { //Do Stuff } } 其中formFie

我有一个需要验证的表单,决定做得和平常稍有不同,让主函数调用更小的函数,就像这样

function validate() {
 validate_this(*fieldId*);
 validate_that(*fieldId*);
 ...
}
如果较小的函数是这样的:

function validate_empty(formField) {
 if ( formName.formField.value.length = 0; ) {
  //Do Stuff
 }
}
其中
formField
是表单中的字段ID。 但是,这会导致
formName.formField.value.length上出现错误

Uncaught TypeError: Cannot read property 'value' of undefined 
如何让它通过解析实际的fieldId而不是字符串或null?jQuery是不可能的。

我建议改用:


从代码的外观来看,JS正在扫描一个名为
formName
的变量,或者表单的实际名称。。。您应该指定它是DOM元素:
document.forms[0]
或类似元素

即使如此,您的
if
将始终计算为true,因为您正在赋值,而不是比较:

var foo = 0;//single  = : assignment operator
console.log(foo == '0');//true, loose comparison (type coerced)
console.log(foo === '0');//false, strict comp: type && value
除此之外,您验证表单的方式非常值得怀疑。。。您似乎在使用JS,就好像它是一种类似C之类的语言。JS IMHO最好用作事件驱动的函数式编程语言

因此,即使这不是严格相关的ATM,请考虑考虑JS的优势…这是一个简洁的小语言,不值得这样的滥用。

知道这是一个简单的解决方案,但认为不会那么简单。非常感谢!分号在这里是一个语法错误,赋值运算符也是:赋值给只读属性有点不方便,这两个都是简单的输入错误造成了这个问题,而不是在实际代码中,尽管如此,
formName[formField]
那么使用
formName.field.etc
的表单名是
formName
是否?(即使它能工作)@aprice:Nope:首先,你可以不小心隐藏表单名(变量),如果我看到一些X浏览器问题,我一点也不会感到惊讶,很高兴知道。我个人不会这样设置,但这是一个大学作业,它说验证没有重复的代码。我必须承认我的本能跳了进来,这就是结果
var foo = 0;//single  = : assignment operator
console.log(foo == '0');//true, loose comparison (type coerced)
console.log(foo === '0');//false, strict comp: type && value