Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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-在onclick上向新窗口添加来自if-else函数的警报_Javascript_Function_If Statement_Alert - Fatal编程技术网

Javascript-在onclick上向新窗口添加来自if-else函数的警报

Javascript-在onclick上向新窗口添加来自if-else函数的警报,javascript,function,if-statement,alert,Javascript,Function,If Statement,Alert,因此,我已经为此工作了几天,作为一名新手,我认为这个答案将真正帮助我理解JavaScript 我有一个包含表单的页面——当用户提交表单时,会打开一个新窗口,其中表单变量嵌入到新窗口中的文本中。它很好用 我遇到的问题是,如果用户在新泽西州的NY | | | |纽约| | | NJ |键入内容,我想在新窗口中添加一个警报。我测试了我的if函数(在做了一些研究之后,我省略了else,因为else实际上什么都不做 我希望它的工作方式是,如果有人键入这四个变量中的一个,则会打开一个带有警报的新窗口。如果他

因此,我已经为此工作了几天,作为一名新手,我认为这个答案将真正帮助我理解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"))