Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.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 尝试使用表单条目设置用于创建自定义URL的变量_Javascript_Html_Url_Variables_Concatenation - Fatal编程技术网

Javascript 尝试使用表单条目设置用于创建自定义URL的变量

Javascript 尝试使用表单条目设置用于创建自定义URL的变量,javascript,html,url,variables,concatenation,Javascript,Html,Url,Variables,Concatenation,我正在做一个内部项目,在编码方面,这个项目比我想象的要复杂得多。我一直在自学如何为员工建立一个网站资源,作为一个更大项目的概念证明,而我几乎没有使用JavaScript的经验 我试图允许人们使用表单输入/选择变量vara、varb和varc的值。输入这些信息后,我希望他们能够查看我允许他们筛选的项目列表,当他们找到想要的项目时,他们单击一个按钮,将查询字符串中的变量与它们之间的一些附加文本组合在一起,并进入该网站 带有查询字符串的URL需要如下所示: 到目前为止我已经知道了,但是我对合并这些信息

我正在做一个内部项目,在编码方面,这个项目比我想象的要复杂得多。我一直在自学如何为员工建立一个网站资源,作为一个更大项目的概念证明,而我几乎没有使用JavaScript的经验

我试图允许人们使用表单输入/选择变量vara、varb和varc的值。输入这些信息后,我希望他们能够查看我允许他们筛选的项目列表,当他们找到想要的项目时,他们单击一个按钮,将查询字符串中的变量与它们之间的一些附加文本组合在一起,并进入该网站

带有查询字符串的URL需要如下所示:

到目前为止我已经知道了,但是我对合并这些信息感到非常困惑。我发现最困难的部分是,每个人可能从列表中选择的项目都有不同的T=值

<script>
      var vara = document.getElementById("PPL");
      var varb = document.getElementById("DT");
      var varc = document.getElementById("TM");

</script>
我链接的项目位于表中,因此标记为:

<td><a href="javascript:location.href=OTCheck('21790')">Link</a></td>
document.getElementById只获取元素,而不获取元素内部的值。修正:

  var vara = document.getElementById("PPL").value;
  var varb = document.getElementById("DT").value;
  var varc = document.getElementById("TM").value;

  document.getElementById("link").onclick = function() {
    window.open('http://www.websiteurl.com/website.aspx?T=12345&J=8&p='+vara+'&d='+varb+'%20'+varc);
    return false;
  }
然后将您的html更改为:

<form onkeypress="return event.keyCode != 13;">
<select id="PPL">
 <option value="1">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
 <option value="4">4</option>
 <option value="5">5</option>
 <option value="6">6</option>
 <option value="7">7</option>
 <option value="8">8</option>
</select>
 <input id="DT" type="text" />
 <select id="TM" type="text">
 <option selected="selected" value="8:00 PM">8:00 PM</option>
 <option value="8:30 PM">8:30 PM</option>
 <option value="9:00 PM">9:00 PM</option>
 <option value="9:30 PM">9:30 PM</option>
 <option value="10:00 PM">10:00 PM</option>
</select>
</form>

 <a href="#" id="link">This is link</a>

现在应该可以了。

谢谢您的快速回复。我将.value添加到每个变量语句中,但是现在结果URL中没有得到NULL,而是以未定义结束。我是否需要为它执行一个函数来检索表单中的值,或者仅仅让变量定义就足够了?这可能是因为您使用的是在线javascript。请看我的编辑。恐怕还是不行。单击链接只会添加到当前URL的末尾。它无法打开我需要的新页面。此外,T=后面的数字也需要根据单击表中的哪个项目而变化。我是否可以设置该变量,然后单击一次即可执行URL?是的,您可以设置。您的html代码中有一些html错误。我已经修好了,现在试试。不幸的是,仍然会做同样的事情。昨天晚些时候,我发现我在PPL上没有正确的ID,把它作为名称出现了错误,但修复它并没有解决问题。我在上面做了其他调整,但结果相同。
<td><a href="javascript:location.href=OTCheck('21790')">Link</a></td>
  var vara = document.getElementById("PPL").value;
  var varb = document.getElementById("DT").value;
  var varc = document.getElementById("TM").value;

  document.getElementById("link").onclick = function() {
    window.open('http://www.websiteurl.com/website.aspx?T=12345&J=8&p='+vara+'&d='+varb+'%20'+varc);
    return false;
  }
<form onkeypress="return event.keyCode != 13;">
<select id="PPL">
 <option value="1">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
 <option value="4">4</option>
 <option value="5">5</option>
 <option value="6">6</option>
 <option value="7">7</option>
 <option value="8">8</option>
</select>
 <input id="DT" type="text" />
 <select id="TM" type="text">
 <option selected="selected" value="8:00 PM">8:00 PM</option>
 <option value="8:30 PM">8:30 PM</option>
 <option value="9:00 PM">9:00 PM</option>
 <option value="9:30 PM">9:30 PM</option>
 <option value="10:00 PM">10:00 PM</option>
</select>
</form>

 <a href="#" id="link">This is link</a>