如果用户名无效,请隐藏链接

时间:2016-10-19 19:23:44

标签: javascript jquery html

这是我第一次用perl和vb做任何事情,所以请耐心等待。

我可以比较两个需要匹配的字段,如果不匹配,那么我需要完全隐藏HTML链接。怎么写呢?

这抓住了第一个用户标识

($("#trid").val());            
    ($("#pxuserid").text());
    var test = $("#pxuserid").text().indexOf("-");
    var username = $("#pxuserid").text().substring(test + 1);
    (username);

这会抓取第二个用户标识并将其从全部大写更改为小写。

($("[name=vsvadm]").val()); 
    var str = $("[name=vsvadm]").text("checked", true).val().toLowerCase();
    (str);

这些是我需要展示/隐藏的

<div class="pxcontent" id="sarea">

   <div class="pxvtab" id="pxform">

      <div class="pxvtablinks">  



       <a href="javascript:act();" rel="#page2">Directories</a>
       <a href="javascript:act();" rel="#page5">Accounting</a>
       <a href="javascript:act();" rel="#page6">Advanced</a>
       <a href="javascript:act();" rel="#page7">Security</a>

我试图让脚本说“如果userid1不等于userid2,那么隐藏第5,6和7页,但只显示第2页,否则继续” 希望我没有混淆任何人,有人可以帮忙!

3 个答案:

答案 0 :(得分:1)

为所有<a>代码添加一个类:

<a href="javascript:act();" class="nav-links" rel="#page2">Directories</a>
<a href="javascript:act();" class="nav-links" rel="#page5">Accounting</a>
<a href="javascript:act();" class="nav-links" rel="#page6">Advanced</a>
<a href="javascript:act();" class="nav-links" rel="#page7">Security</a>

然后检查条件并隐藏它:

if (userid1 != userid2)
  $(".nav-links").hide();
  

注意:这应该在服务器端真正处理,而不是客户端。有经验的用户(现在几乎每个人)都可以使用开发工具访问隐藏的元素。

答案 1 :(得分:0)

假设您想要比较strusername ..

 if(str !== username) $("a").hide();

这会隐藏所有链接,正如您的问题所述,但不应用于阻止用户查看它们。如果你的链接需要安全,那么auth应该在服务器端完成。

此外,你可以摆脱你在perens中包含的所有独立陈述。那些不为任何目的服务。

答案 2 :(得分:-1)

您需要比较字符串,然后循环链接

var username1 = 'username1'
var username2 = 'username2'

// Do compare
if (username1 !== username2) {
    // Loop over the links
    $.each($('.pxvtablinks a'), function() {
        // If it doesn't have a rel attribute equal to '#page2'...
        if ($(this).attr('rel') !== '#page2') {
            // hide it.
            $(this).hide()
        }
    })
}

示例:https://codepen.io/mark_c/pen/mAQwpE