Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要根据文本字段中的值是否为特定数字返回true或false_Javascript_Html_Jquery Validation Engine - Fatal编程技术网

Javascript 需要根据文本字段中的值是否为特定数字返回true或false

Javascript 需要根据文本字段中的值是否为特定数字返回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

如果用户在输入字段中输入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-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."
},