Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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 如何在JQuery中使用IndexOf_Javascript_Jquery_Html_Blur_Indexof - Fatal编程技术网

Javascript 如何在JQuery中使用IndexOf

Javascript 如何在JQuery中使用IndexOf,javascript,jquery,html,blur,indexof,Javascript,Jquery,Html,Blur,Indexof,这仅适用于4289, 当我尝试使用“或”在它旁边添加要索引的其他数字时,它不起作用。我该如何填写其他号码。例如 if($('#this').val().indexOf('4289')){ Do something else Do something. 我想让它检查这些数字,如果输入字段中的数字不是其中之一,则返回错误 当一个人重游这个领域时,这里有更多的人碰巧死亡 IndexOf('4289||78843') 这是因为它将查找字符串'4289 | | 78843',而我假

这仅适用于
4289

当我尝试使用“或”在它旁边添加要索引的其他数字时,它不起作用。我该如何填写其他号码。例如

if($('#this').val().indexOf('4289')){
    Do something
else
    Do something. 
我想让它检查这些数字,如果输入字段中的数字不是其中之一,则返回错误

当一个人重游这个领域时,这里有更多的人碰巧死亡

IndexOf('4289||78843') 

这是因为它将查找字符串
'4289 | | 78843'
,而我假设的目标中不存在该字符串。逻辑运算符不能随便放在任何地方,只能放在有实际值进行逻辑运算的地方。大概是这样的:

$('#Zip').blur(function(){
        if (($(this).val().indexOf('0860') > -1)||($(this).val().indexOf('0850') > -1)){
        $('#Status_Zip').html("No way.")
        $(this).alterClass('*_*', 'Success')
        return false;
        }else{$('#Status_Code').hide()
        $(this).alterClass('*_*', 'Error')
        $(this).css('border-color', '#F00').css('background-color', '#FFC').effect("pulsate",{times:4},2)
            return true;
        }
    })
if(($('#this').val().indexOf('4289') > -1) ||
   ($('#this').val().indexOf('78843') > -1))
indexOf()
函数的返回值是目标值中该值的数字索引,如果找不到,则返回-1。因此,对于要查找的每个值,您需要检查它的索引是否为
-1
(这意味着它在字符串中找到)。把整个条件和另一个条件结合起来,这是一个逻辑运算

Edit:关于您的注释,如果您想将其抽象为更清晰、更通用的内容,您可以将其提取到自己的函数中,该函数在字符串集合上迭代,如果目标字符串中有任何字符串,则返回
true
。也许是这样的:

$('#Zip').blur(function(){
        if (($(this).val().indexOf('0860') > -1)||($(this).val().indexOf('0850') > -1)){
        $('#Status_Zip').html("No way.")
        $(this).alterClass('*_*', 'Success')
        return false;
        }else{$('#Status_Code').hide()
        $(this).alterClass('*_*', 'Error')
        $(this).css('border-color', '#F00').css('background-color', '#FFC').effect("pulsate",{times:4},2)
            return true;
        }
    })
if(($('#this').val().indexOf('4289') > -1) ||
   ($('#this').val().indexOf('78843') > -1))

好的,很好。它起作用了。唯一的问题是如果我要输入20个以上的数字,代码就会很长,有很多索引。我们不能在那里的某个地方缩短一些吗@BlessingThinker:当然,它可以抽象为自己的通用函数。任何时候代码中都有大量的复制/粘贴操作,那么很可能至少可以提取一个函数。除此之外,可能还有更多的方法,但它似乎足够简单。我已经用一个例子更新了答案。我使用了模糊,然后一个正确的数字被正确验证,但是当你返回并将该数字更改为其他数字时,函数似乎已经失效。@BlessingInker:听起来完全是另一个问题,我需要看到更完整的代码。@BlessingInker:Define“恰巧死了。”
blur
处理程序被调用了吗?发生了什么?