正确插入参数

时间:2013-04-05 11:49:59

标签: javascript forms

我有一个需要验证的表单,决定与平时有点不同,并且主函数调用较小的函数,如此

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 

如何通过而不是字符串或null来解析实际的fieldId? jQuery是不可能的。

2 个答案:

答案 0 :(得分:1)

我建议改为使用document.getElementById

function validate_empty(formField) {
    if ( document.getElementById(formField).value.length == 0 ) {
        //Do Stuff
    }
}

答案 1 :(得分:1)

代码的外观,JS是范围扫描一个名为formName的变量,或者实际上是什么形式的名称......你应该指定它是一个DOM元素:document.forms[0]或类似的

即便如此,您的if也会始终评估为真,因为您要分配,而不是比较:

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的优势......这是一个简洁的小语言,不值得这种滥用。