javascript - 对象内的 If/else 条件

标签 javascript

function Validator(formIsValid) {
    if(this.formIsValid) {
        alert('Form is valid!');
    }
    else {
        alert('Form is invalid...');
    } 
}
Validator.prototype = { // Notice the .prototype here, it's important!

  formIsValid: true, 

  enforceTextFieldMinLength: function(field, minLength) {
      if (!field.value || field.value.length < minLength) {
            this.formIsValid = false;
      }   
  },

  enforceLabelHasText: function(label) {
        if (!label.text) {
            this.formIsValid = false;
        }
  }
}
//var val = new Validator();

以上是我的Val.js。这就是我在 otherFile.js 中使用的方式

AddPatient.Firstname = FirstNameValue || Validator.enforceLabelHasText(FirstName);  

我收到一条错误消息:无法在对象函数 Validator(formIsValid) 中找到函数 enforceLabelHasText

最佳答案

您不能将表达式放在对象定义中。如果您希望在创建对象实例后执行代码,您应该使用:

function Validator() {
    if(this.formIsValid) {
        alert('Form is valid!');
    }
    else {
        alert('Form is invalid...');
    } 
}
Validator.prototype = { // Notice the .prototype here, it's important!

  formIsValid: true, 

  enforceTextFieldMinLength: function(field, minLength) {
      if (!field.value || field.value.length < minLength) {
            this.formIsValid = false;
      }   
  },

  enforceLabelHasText: function(label) {
        if (!label.text) {
            this.formIsValid = false;
        }
  }
}
var a = new Validator();

这是一个虚拟的解决方案;您需要向 Validator() 函数添加参数,以初始化 formIsValid 和其他值。我建议你应该阅读 the MDC's description on prototypes .

编辑:如果您使用原型(prototype)解决方案,则需要在将 val 设置为全局变量后调用 val.enforceLabelHasText(FirstName)变量(通过省略 var 或使用 var window.val = new Validator())。

关于javascript - 对象内的 If/else 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6329906/

相关文章:

javascript - jQuery 选择器中的串联

javascript - 使用 jQuery 显示和隐藏 div 以及添加/清除 div 内容

Javascript - 数组中的 2 个 var 输入

javascript - 需要一个正则表达式来获取从 # 到非字母表的所有字母

javascript - 只有第一行行是必填字段 - 动态表 Knockout.js

javascript - 提交表单时如何调用方法?

javascript - 维护静态数量的可拖动元素 html/js

javascript - 如何让 event.preventDefault 在动态函数上工作

javascript - 将 tooltip-master 与 bootstrap v3.3.5 和 jquery 1.11.3 一起使用时,文本框不显示

javascript - 使用 Express session 设置域会阻止保存 cookie