只有在输入不为空时,我才能验证输入字段是否具有格式正确的URL。我正在检查输入的值是否为空,如果是,则验证它是否为URL。然而,这似乎奇怪地破坏了我的代码而没有验证。
rules: {
domain: {
required: true
},
playerClass: {
required: true,
},
if (adTag.value !== '') {
url: true
}
},
完整示例:JSFIDDLE
答案 0 :(得分:1)
那是因为你在JS对象的定义中使用了一个表达式。这是不可能的。你可以这样做:
rules: {
domain: {
required: true
},
playerClass: {
required: true,
},
adTag: {
url: adTag.value !== ''
}
}
这与您认为代码应该具有的效果略有不同,因为它始终会创建url
字段,但它将true
或false
取决于adTag.value !== ''
}是true
。
答案 1 :(得分:1)
您正在破坏插件,因为您无法在对象文字中放置条件语句...
rules: { // <- this is part of an object literal, NOT a function
domain: {
required: true
},
playerClass: {
required: true,
},
if (adTag.value !== '') { // <- no good! conditional is outside of a function
url: true
}
},
条件语句只能进入函数内部。
rules
选项仅采用以逗号分隔的key:value
对列表,这些对代表name
字段value
,其中rules: {
domain: {
required: true
},
playerClass: {
required: true,
},
adTag: {
url: function() {
// conditional statement to return true or false
}
}
},
是其规则。 然后您可以使用函数来构造规则的参数。
你可以做这样的事情......
required
我需要能够验证输入字段...仅当输入不是空白时。
不使用rules: {
domain: {
required: true
},
playerClass: {
required: true,
},
adTag: {
url: true // only gets evaluated when the field is not empty
}
},
规则,已经是默认行为!
col.find().to_a
# ^^^^