Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.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 如果用户名无效,请隐藏链接_Javascript_Jquery_Html - Fatal编程技术网

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

Javascript 如果用户名无效,请隐藏链接,javascript,jquery,html,Javascript,Jquery,Html,这是我第一次用perl和vb以外的语言做很多事情,所以请耐心听我说 我能够比较两个需要匹配的字段,如果它们不匹配,那么我需要完全隐藏HTML链接。这是怎么写的 这将获取第一个用户标识 ($("#trid").val()); ($("#pxuserid").text()); var test = $("#pxuserid").text().indexOf("-"); var username = $("#pxuserid").text().subst

这是我第一次用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页,否则继续” 希望我没有把任何人搞糊涂,有人可以帮忙

给所有
标记一个类:

<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>
注意:这实际上应该在服务器端而不是客户端处理。有经验的用户(现在几乎所有人)都可以使用开发工具访问隐藏的元素


假设您要比较的是
str
username

 if(str !== username) $("a").hide();
正如您的问题所述,这会隐藏所有链接,但不应用于阻止用户查看它们。若你们的链接需要安全,那个么应该在服务器端进行身份验证


此外,您还可以摆脱所有用perens包装的独立声明。这些没有任何作用。

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

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()
        }
    })
}

示例:

这应该在服务器端完成,在客户端,用户可以看到正在发生的事情(无论多么模糊),并且您似乎正在检查站点中保存的值,您的用户可以访问该值。另外,仅供参考,您的以下语句不做任何操作,即检索值并丢弃它:
($(“#trid”).val())
($(“#pxuserid”).text()
(用户名)
($(“[name=vsvadm]”)val()
(str)
是否有一个简单的命令只将类添加到第5、6、7页?@CharlesZ我想最好使用服务器端来处理这个问题。但是是的。
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()
        }
    })
}