Javascript-在onclick上向新窗口添加来自if-else函数的警报
因此,我已经为此工作了几天,作为一名新手,我认为这个答案将真正帮助我理解JavaScript 我有一个包含表单的页面——当用户提交表单时,会打开一个新窗口,其中表单变量嵌入到新窗口中的文本中。它很好用 我遇到的问题是,如果用户在新泽西州的NY | | | |纽约| | | NJ |键入内容,我想在新窗口中添加一个警报。我测试了我的if函数(在做了一些研究之后,我省略了else,因为else实际上什么都不做Javascript-在onclick上向新窗口添加来自if-else函数的警报,javascript,function,if-statement,alert,Javascript,Function,If Statement,Alert,因此,我已经为此工作了几天,作为一名新手,我认为这个答案将真正帮助我理解JavaScript 我有一个包含表单的页面——当用户提交表单时,会打开一个新窗口,其中表单变量嵌入到新窗口中的文本中。它很好用 我遇到的问题是,如果用户在新泽西州的NY | | | |纽约| | | NJ |键入内容,我想在新窗口中添加一个警报。我测试了我的if函数(在做了一些研究之后,我省略了else,因为else实际上什么都不做 我希望它的工作方式是,如果有人键入这四个变量中的一个,则会打开一个带有警报的新窗口。如果他
我希望它的工作方式是,如果有人键入这四个变量中的一个,则会打开一个带有警报的新窗口。如果他们不键入其中一个变量,则只会打开新窗口 我准备了一个截短的测试代码,我将放在下面。我知道有比我编写的代码更好的方法来实现这一点,我打赌可能有更简单的方法使用库、jquery等,但我希望有人能告诉我如何添加askForHelp函数,这样它将在新窗口中用我编写的代码打开警报。再次,这是b/c这是我在这一点上的知识库,它将帮助我了解如何真正编写声明。提前感谢提供的任何帮助
<!doctype html>
<html>
<head>
<title>test</title>
<meta charset="utf-8">
<script type="text/javascript">
function newWindow() {
allInfo= open("", "displayWindow");
allInfo.document.open();
allInfo.document.write('<!doctype html><html><head><title>Test</title><meta charset="utf-8"></head><body>');
allInfo.document.write(document.getElementById ('state').value);
allInfo.document.write('<p>' + document.getElementById ('zip').value);
allInfo.document.write('</section></body></html>');
allInfo.document.close();
}
function askForHelp () {
var volunteer = document.getElementById('state').value;
if (volunteer == "New York" || "NY" || "New Jersey" || "NJ") {
allInfo.document.open.alert("test test test"); //Do I put the statement here?
} // else do nothing
}
</script>
</head>
<body>
<script type="text/javascript">
</script>
<form id="infoForm" method="post" name="infoForm">
<p>State: </p>
<p><input type="text" id="state" placeholder="State or Region"></p>
<p>Zip: </p>
<p><input type="text" id="zip" placeholder="Zip code" required /></p>
<p><input type="button" value="Submit Information" onClick="newWindow(), askForHelp()" ></p> <!-- Should askForHelp() be here? -->
</form>
</body>
</html>
测验
函数newWindow(){
allInfo=打开(“,“显示窗口”);
allInfo.document.open();
allInfo.document.write(“测试”);
allInfo.document.write(document.getElementById('state').value);
allInfo.document.write(“”+document.getElementById('zip').value);
allInfo.文件。书写(“”);
allInfo.document.close();
}
函数askForHelp(){
var=document.getElementById('state')。值;
如果(志愿者==“纽约”| | |“纽约”| | |“新泽西”| |“新泽西”){
allInfo.document.open.alert(“test”);//我要把语句放在这里吗?
}//否则什么也不做
}
声明:
邮编:
由于我使用的是JSFIDLE,它不允许我放入文档。编写但你仍然可以知道它是如何工作的。看看这个,下面是我所做的更改
HTML:
您的代码中有3个问题:
1-您正在尝试获取id=country的元素的值,但没有id=country的元素
allInfo.document.write('<p>' + document.getElementById ('country').value);
3-代码中的If条件将始终返回true。它应该被修改,如下所示:
allInfo.alert("blah blah");
if((volunteer == "New York") || (volunteer =="NY") || (volunteer =="New Jersey") || (volunteer =="NJ"))
我已对此进行了上述修改。请检查。我发现这行if(志愿者==“纽约”| |“纽约”| |“新泽西”|“NJ”)
有问题,请改为if([“纽约”、“纽约”、“新泽西”、“NJ”)。indexOf(志愿者)>-1)
。如果这没有帮助,你能制作一个JSFIDLE吗?@mheiber数组索引可能是IE8或lessThanks上的一个问题。我在JSFIDLE上看到的问题是,无论我为“state”输入了什么值,警报都会在新窗口中打开。“country”id只是我在原始页面上留下的代码中的一个错误。我会尝试要编辑它。Doh!。我没有测试这部分。我可以清楚地看到if语句中的条件总是会得到true。如果你想做Or语句,你应该这样做:if((志愿者=“纽约”)|(志愿者=“纽约”)|(志愿者=“新泽西”)|(志愿者=“新泽西”)|(志愿者=“新泽西”)|(志愿者=“NJ”))
。我会相应地更新我的答案哇。谢谢。就是这样。它很有效。我只需要allInfo.alert语句(并用正确的括号修复if语句)。我真的很感激,我明白了。再次感谢,但我仍然无法让它在JSFIDLE中工作。无论我为state和zip输入了什么值,警报都会在没有新窗口的情况下弹出。也许这是b/c警报是从新窗口调用的?我仍然希望警报只在if stat的四个值中的一个出现在新窗口中“如果有人键入这四个变量中的一个,则会打开一个新窗口并发出警报。如果他们没有键入其中一个变量,则只会打开新窗口”,这是否意味着无论发生什么情况,您都要发出警报(“新窗口”);
,如果用户输入这四个值,您将发出警报(“新窗口”)
和警报(“测试”)
。这是我在小提琴中做的。请解释更多关于你的目标。谢谢。我真正想要的是打开一个新窗口,并在其中写入提交的值,除非用户键入这四个值中的一个,否则我想要打开一个新窗口,并在窗口上显示用户提交的内容,并在其上发出警告当他们点击ok时,他们仍然会看到一个新的窗口,里面有他们提交的值。我曾经得到过它(我现在甚至不知道是怎么得到的)要在他们提交这些值时打开警报,并使用这些值打开新窗口,但警报正在父窗口上打开。我想这正是您要查找的内容,请查看他如何在新打开的窗口中使用.onload
。我想您可以将“警报”放在该窗口中。onload。
allInfo.alert("blah blah");
if((volunteer == "New York") || (volunteer =="NY") || (volunteer =="New Jersey") || (volunteer =="NJ"))