未正确更新隐藏的输入字段

Hidden input field not being updated properly

本文关键字:输入 字段 隐藏 更新      更新时间:2023-09-26

我正在尝试获取引用并更新引用,以便我的用户可以返回到他们返回的页面。我有一个隐藏的输入字段,它保存重定向的值。我在那里有一个静态值,以防引用为空。如果referrer不是空的,我想更新它的值。这是我写的代码,我甚至测试了它,它说它已经更新了,但是,我没有被正确重定向,所以它不起作用。

我已经编写了JavaScript和HTML(请记住,我已经正确地链接了文件等):

 $(document).ready(function(){
  if (document.referrer != "") {
     document.getElementsByName("redirect").value = document.referrer;
     var test = "false";
     if (document.getElementsByName("redirect").value == document.referrer){
         test = "true";
     }
     alert(test);
     }
  });
<script src="js/referrer.js"></script>
<input type="hidden" name="redirect" value="https://www.google.com" />

我觉得这是一个小错误,或者可能有某种标准我没有遵循。

谢谢你的帮助!我很感激你的真知灼见!

我看不出你给我的问题是什么。但我可以说的是,如果你要在一个地方使用JQuery(文档就绪函数),那么你也应该使用它来获取输入字段的值。

如果您在输入字段中输入一个Id,而不是按名称输入,也会有所帮助。Id是获取特定元素的最佳方式。这也可能是你的问题。

然后使用进行调用

$("#ID").val()

所以你的代码会变成:

if($("#ID").val() === document.referrer)

我也建议使用三重相等。但这完全取决于你。

我从来没有用document.referrer做过任何事情,但可能还有更好的方法。

一件奇怪的事情是,您将这两个东西设置为彼此相等的

 document.getElementsByName("redirect").value = document.referrer;

然后立即测试它们是否相等。

 if (document.getElementsByName("redirect").value == document.referrer)

我不能说这是你的问题,但这是糟糕的编码,应该修复。

我想一个字母会让你在这里绊倒。

if (document.getElement**s**ByName("redirect").value == document.referrer){

"byName"没有单数等价物,所以最终会得到一个数组(或者至少是一个类似数组的对象)。与ID不同,允许多个输入具有相同的名称。最简单的解决方案是:

if (document.getElementsByName("redirect")[0].value == document.referrer){
执行document.getElementsByName将返回一个不包含该值的对象数组。当使用getElementsByName时,没有办法更改值(我知道并尝试过)。我已经通过使用getElementById解决了这个问题,它实际上对我来说很合适。