所以我一直在研究这个问题几天,作为一个新手,我认为答案真的有助于我理解JavaScript。
我有一个包含表单的页面 - 当用户提交表单时,会打开一个新窗口,其中窗口中的表单变量嵌入在新窗口中。它工作正常。
我遇到的问题是,如果用户onClick在NY ||中输入,我想向新窗口添加警报纽约||新泽西州||新泽西州。我测试了我的if函数(在做了一些研究后我遗漏了其他的东西,因为其他的东西确实什么都没做。
我希望它工作的方式是,如果有人键入这四个变量中的一个,则会打开一个带有警报的新窗口。如果他们没有输入其中一个变量,则只会打开新窗口。
我准备了一个截断的测试代码,我将在下面提出。我知道有更好的方法可以做到这一点,然后我写的代码,我打赌有更简单的方法与库,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>
答案 0 :(得分:0)
由于我使用JSFiddle,它不会让我放document.write
但你仍然可以如何工作..看看这个Fiddle,下面是我的变化制成..
HTML:
<p><input type="button" id="submit-btn" value="Submit Information" ></p>
JS:
function newWindow() {
alert("New Window");
}
function askForHelp () {
var volunteer = document.getElementById('state').value;
if (volunteer == "New York" || volunteer == "NY" || volunteer == "New Jersey" || volunteer == "NJ") {
alert("test test test");
}
}
document.getElementById('submit-btn').addEventListener("click", function(){
newWindow();
askForHelp();
});
答案 1 :(得分:0)
您的代码中有3个问题:
1-您正在尝试为id = country的元素获取值,并且您没有任何id = country
的元素allInfo.document.write('<p>' + document.getElementById ('country').value);
2- alert()函数附加到窗口对象而不是文档对象。因此,当您想要在新窗口中调用警报时,您应该这样调用它:
allInfo.alert("blah blah");
3-代码中的If条件将始终返回true,它应该被修改,如下所示:
if((volunteer == "New York") || (volunteer =="NY") || (volunteer =="New Jersey") || (volunteer =="NJ"))
我已在此jsFiddle中进行了上述修改。请检查一下。