Javascript 需要根据文本字段中的值是否为特定数字返回true或false
如果用户在输入字段中输入4,我希望返回trueJavascript 需要根据文本字段中的值是否为特定数字返回true或false,javascript,html,jquery-validation-engine,Javascript,Html,Jquery Validation Engine,如果用户在输入字段中输入4,我希望返回true function validateAddition() { if($("#validateAddition").val() == 4) { return true; } else { return false; } } <input value="" class="validate[required,onlyNumber,length[0,1]funcCall[validateAddition]] text-i
function validateAddition() {
if($("#validateAddition").val() == 4) {
return true;
} else {
return false;
}
}
<input value=""
class="validate[required,onlyNumber,length[0,1]funcCall[validateAddition]] text-input"
type="text" id="validateAddition" name="validateAddition" />
这应该没问题,让我知道您认为哪里不对。如果您想同时允许其他字符,并且仅当输入字段的文本包含4时才返回true,您应该这样做:
if($("#validateAddition").val().indexOf('4') != -1) {
编辑:MooGoo是正确的,我的解释是错误的
然而,使用+val的想法可能不是最好的。当您需要更好的解决方案时,上述方法将起作用,如下所示:
if(($('#validateAddition').val()-0) == 4)
我们想要-0而不是+0的原因很简单,因为如果它是一个字符串,并且您希望在它是字符串时执行任何其他操作,那么您将不再拥有原始字符串。将值与字符串进行比较是有意义的,因为值是一个字符串。这允许您使用严格的相等,避免不必要的自动转换。您还可以简化函数
function validateAddition() {
return $("#validateAddition").val() === "4";
}
您可以将验证放在语言文件中,如下所示
"validateAddition": {
"regex": /[0-3]|[5-9]/,//something that matches on all numbers but four
"alertText": "* Your math is off, try again."
},
是的,我有。它忽略了数字的值。@Brad:请看我的答案,告诉我这是否是您要找的。是否
validate[required,onlyNumber,length[0,1]funcCall[validateAddition]
真的是类名?也许你的浏览器在试图解析这样一个残暴行为后罢工了。@MooGoo:据我所知,jQuery使用类名来执行一些客户端表单处理。它不存在于样式表中,而是由jQuery获取的。如果您需要在标记中添加这样的垃圾,您还可以返回到使用包含eval'd Javascript字符串的HTML属性附加事件,但这不是原因。在Javascript中,“4”==4&&“4”==4&&“00004”==4
没有理由手动键入cast,即使这样,parseInt
也可能是最糟糕的方式。如果必须,只需使用+val
。
function validateAddition() {
return $("#validateAddition").val() === "4";
}
"validateAddition": {
"regex": /[0-3]|[5-9]/,//something that matches on all numbers but four
"alertText": "* Your math is off, try again."
},