只有在文本字段中键入正确的单词时,如何才能使链接起作用?

时间:2015-08-04 15:23:46

标签: javascript jquery forms validation shopify

我为客户建立了一个电子商务网站。然而,任何对jQuery / JS有好主意的人都应该能够提供帮助,因为这与后端无关。

他们希望展示一个隐藏的'商店页面,输入通用密码时。

因此,在该网站的主页上将是一个密码字段和一个提交按钮。

密码是通用的,让我们说' letmein'。输入后,商店页面的链接将变为活动状态。

如果可能的话,在键入正确的单词之前将链接灰显/禁用也会很棒。

这可能吗?非常感谢,如果有人可以提供帮助的话!

4 个答案:

答案 0 :(得分:2)

如果密码确实重要并且您正在创建此门后面有敏感数据,这是一个糟糕的主意。密码永远不应该是前端数据,因为任何拥有计算机的人都可以访问它们。如果用户访问确实无关紧要,而这只是让用户感觉特别的表面门户,那么JavaScript确实是答案。如果访问是随意的,安全性实际上并不重要,您应该尝试:

您可以创建一个保持非活动状态的链接,直到将正确的密码输入HTML <input>。使用JavaScript / jQuery检查密码是否正确,如果是,则更改锚点的值。

这样的事情可能是:

HTML:

<a href="#" id="link-to-site">Password Invalid</a>
<input type="text" id="password-field" />

JS:

var correctPass = "letmein";                                       // any password you want
$("#password-field").on("change", function() {                     // everytime the value changes we check the input for the password
   if ($(this).val() == correctPass) {                             // if the value of the input is the password (no submit needed)
     $("#link-to-site").attr("href", "www.actual-site-link.com");  // changes link of anchor
     $("#link-to-site").html("You're in!");                        // changes anchor's text to show a visual change (a nice UX touch)
   }
});

这是一个工作小提琴:JSFiddle

答案 1 :(得分:1)

  

然而,任何对jQuery / JS有好主意的人都应该能够提供帮助,因为这与后端无关。

在前端执行此操作是个坏主意。任何对脚本有基本知识的人都可以启用链接(即使没有输入&#34;密码&#34;)

答案 2 :(得分:1)

您可以在密码正确后添加TreeViewItem visItem = rootItem; foreach (TreeNode item in parentStack) { TreeViewItem visItemTemp = (TreeViewItem)visItem.ItemContainerGenerator.ContainerFromItem(item);//get visual tree object if (visItemTemp != null) visItem = visItemTemp; // visItem.BringIntoView();//scroll to selected item //Point pos = visItem.TranslatePoint(new Point(0, 0), TreeScroll); //Point pos = visItem.TranslatePoint(new Point(0, 0), visItem); //double vo = TreeScroll.VerticalOffset + pos.Y - TreeScroll.ViewportHeight /2; //double vo1 = TreeScroll.VerticalOffset + pos.Y -TreeScroll.ViewportHeight / 2; //vo1 = Math.Abs(pos.Y); //TreeScroll.ScrollToVerticalOffset(vo1); //TreeScroll.ScrollToVerticalOffset(vo); Point pos = visItem.TranslatePoint(new Point(0, 0), TreeScroll); double vo = TreeScroll.VerticalOffset + pos.Y - TreeScroll.ViewportHeight / 2; var vo1 = TreeScroll.ContentVerticalOffset + pos.Y;//(TreeScroll.ViewportHeight - (pos.Y))/2;//TreeScroll.VerticalOffset + pos.Y - TreeScroll.ViewportHeight ; // if (vo1 < 0) // vo1 = Math.Abs(vo1); //if (vo1 < 80) // vo1 = 200; TreeScroll.ScrollToVerticalOffset(vo); Console.WriteLine("vo:{0}", vo); } ,如果不是这样,请删除here is working fiddle

只要安全性无关紧要,这只是一个你想要打开的链接,没有后端验证,那么这将正常工作。

href
function updateLink(input) {
  if (input.value == "letmein") {
    document.getElementById("atag").href = "http://www.google.com";
  } else {
    document.getElementById("atag").removeAttribute("href");
  }
}

答案 3 :(得分:0)

感谢您的回答。

要回答这个问题 - 不,安全不是问题。它只是增加了一层排他性。用户在注册邮件列表时将收到通用密码。