Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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更改表单响应_Javascript_Jquery_Arrays_Forms_Onblur - Fatal编程技术网

使用Javascript/jQuery更改表单响应

使用Javascript/jQuery更改表单响应,javascript,jquery,arrays,forms,onblur,Javascript,Jquery,Arrays,Forms,Onblur,我在我的网站上有一个表单,我只需要为输入几个邮政编码之一的人更改回复。我正在尝试设置代码,以便根据数组中保存的对象检查输入的邮政编码的前3位数字。它还没有完成,但我正在测试它,现在我正试图让zipValue在控制台中显示,一旦有人点击zip字段,但我没有任何运气让它工作。这就是我到目前为止所做的- let inLA = false; var zipsLA = ["700, 701, 703, 704, 705, 706, 707, 708, 710, 711, 712, 713, 714"];

我在我的网站上有一个表单,我只需要为输入几个邮政编码之一的人更改回复。我正在尝试设置代码,以便根据数组中保存的对象检查输入的邮政编码的前3位数字。它还没有完成,但我正在测试它,现在我正试图让zipValue在控制台中显示,一旦有人点击zip字段,但我没有任何运气让它工作。这就是我到目前为止所做的-

let inLA = false;
var zipsLA = ["700, 701, 703, 704, 705, 706, 707, 708, 710, 711, 712, 713, 714"];
const $zipField = document.getElementById('formFieldZip')
const $zipValue = document.getElementById('formFieldZip').value

$zipField.addEventListener('blur', function(){
    console.log(zipValue);
});
我最终的希望是,如果输入的邮政编码的前3位与数组中的一个条目匹配,它将“inLA”设置为true


编辑:Fiddle链接:

问题是您在开始时获取输入值(未定义)。它不会在事件列表中更新

从eventListener中的输入获取值

用这个,

var inLA = false;
var zipsLA = ["700", "701", "703", "704"];
const $zipField = document.getElementById('formFieldZip');

$zipField.addEventListener('blur', function(){
    console.log($zipField.value);
    (zipsLA.indexOf($zipField.value) > -1) ? console.log('zip matched') : console.log('no match');
});

你也有很多语法错误。请参阅上面的评论。

尝试以下内容:

let inLA=false;
zipsLA变量=[“700”、“701”、“703”、“704”、“705”、“706”、“707”、“708”、“710”、“711”、“712”、“713”、“714”];
const$zipField=document.getElementById('formFieldZip');
$zipField.addEventListener('blur',function(){
if(zipsLA.indexOf(this.value.slice(0,3))!=-1){
inLA=真;
}否则{
inLA=假;
}
控制台日志(inLA);
});

问题是您试图在加载DOM元素之前访问它

小提琴显示您正在使用onLoad,而您应该使用ready

也更新了你的小提琴

一旦DOM就绪,就可以查询DOM中的元素,并向其中添加事件侦听器


如果您正在为jquery的document ready寻找纯JS替代方案,您可以使用此解决方案。

您是否有一把小提琴来演示示例?请尝试改进您的问题。你知道你在干什么吗?让vs var?,数组定义不是真正的数组(只有一个元素)。变量处的前导$-符号。。。为什么?在未定义的对象($zipField unqualized zipField)处添加了EventListener。。。请检查您的代码,并自行删除此类错误。这些是解析错误(您的控制台应该向您显示一些错误。请修复它们)是文档内部的addEventListener。准备好了吗?@practice2perfect添加了一个小提琴链接,我尝试了文档内外的addEventListener。准备好了吗,它似乎没有什么问题difference@practice2perfect为什么addEventListener需要在document.ready中?你看到这个问题中使用了jQuery吗?试试这个,谢谢。到目前为止,它说没有匹配,尽管它应该匹配,但它越来越接近了。你不需要将它放在window.onload中。您可以在正文末尾添加一个脚本,并将这段代码放在那里。如果您使用的是jQuery,请在document.ready中添加代码。
$( document ).ready(function() {
    const $zipField = document.getElementById('formFieldZip')
    const $zipValue = document.getElementById('formFieldZip').value

    $zipField.addEventListener('blur', function(){
      console.log($zipField.value);
    });
});