Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.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&;ASP.NET问题_Javascript_Asp.net - Fatal编程技术网

Javascript&;ASP.NET问题

Javascript&;ASP.NET问题,javascript,asp.net,Javascript,Asp.net,我在asp.net页面中实现javascript控件时遇到一些问题。我想让一组变量根据一些asp按钮控件获取它们的值。然后我根据按钮的点击方式来操作这些按钮。但我有一些问题: 我定义并给它赋值的所有全局变量都返回为null 我不能运行onload事件,因为我所有的变量都返回为null 我不能使用visible=“false”的asp.net标记,因为由于某种原因javascript无法显示控件 javascript style.visibility=“visible”并没有真正起作用,因为您仍然

我在asp.net页面中实现javascript控件时遇到一些问题。我想让一组变量根据一些asp按钮控件获取它们的值。然后我根据按钮的点击方式来操作这些按钮。但我有一些问题:

  • 我定义并给它赋值的所有全局变量都返回为null
  • 我不能运行onload事件,因为我所有的变量都返回为null
  • 我不能使用visible=“false”的asp.net标记,因为由于某种原因javascript无法显示控件
  • javascript style.visibility=“visible”并没有真正起作用,因为您仍然可以看到按钮的位置——它只是不可见 这是我的代码。TL,DR是我想运行一些行为有条件地显示/隐藏按钮通过JS上加载,然后隐藏/显示按钮在不同的按钮点击。我知道这是一个范围问题,因为当我测试全局变量时,它们返回“null”,但我不知道有什么好的解决方法来解决这个问题和onload问题。谢谢

    var btnEdit = document.getElementById("<%= cmdEdit.ClientID %>");
    var btnSave  = document.getElementById("<%= cmdSave.ClientID %>");
    var btnCanvel = document.getElementById("<%= cmdCancel.ClientID %>");
    var btnConfirm = document.getElementById("<%= cmdConfirm.ClientID %>");
    
    
    function HideEdit(){
    
        $(btnEdit).hide();
        $(btnSave).show();
        $(btnCancel).show();
        $(btnConfirm).hide();
    
        document.getElementById("<%= pnlWhy.ClientID %>").style.visibility = "visible";
        document.getElementById("<%= pnlRequest.ClientID %>").style.visibility = "visible";
    }
    
    function testme() {
    alert(btnEdit)
    
    }
    function loadpage(newwine){
    
        if (newwine==true){
            $(btnEdit).hide();
            $(btnSave).show();
            $(btnCancel).show();
            }
        else{
            $(btnEdit).show();
        }
    $(btnConfirm).hide();
    }
    
    var btnEdit=document.getElementById(“”);
    var btnSave=document.getElementById(“”);
    var btnCanvel=document.getElementById(“”);
    var btnConfirm=document.getElementById(“”);
    函数HideEdit(){
    $(btnEdit.hide();
    $(btnSave.show();
    $(btnCancel.show();
    $(btnConfirm.hide();
    document.getElementById(“”).style.visibility=“可见”;
    document.getElementById(“”).style.visibility=“可见”;
    }
    函数testme(){
    警报(btnEdit)
    }
    函数加载页(newwine){
    if(newwine==true){
    $(btnEdit.hide();
    $(btnSave.show();
    $(btnCancel.show();
    }
    否则{
    $(btnEdit.show();
    }
    $(btnConfirm.hide();
    }
    
    看起来您正在使用jQuery,尽管您在标记中没有提到它。无论如何,可能发生的情况是,您的代码在页面元素实际存在之前运行。在这种情况下,全局引用将为null;事实上,它们从零开始

    如果使用jQuery,只需将代码放入“就绪”处理程序:


    为什么不通过jQuery查找元素?它更方便。您还可以通过jQuery methods.addClass()方法设置或删除样式类。如果您在一次单击set visibility true后输入,然后在另一次单击set visibility false后输入,请使用jQuery.toggle jQuery method()

    Nice,我使用的是jQuery。抱歉把它漏掉了。因此,我可以在ready处理程序中运行所有内容,当页面“就绪”时就会启动,谢谢!
    $(function() {
      // all your code here
    });