在javascript中显示或隐藏div id

时间:2013-12-26 07:33:21

标签: javascript html

HTML

<input type="image" name="Generate" src="../images/buttons/generate.gif" align="middle" onclick="javascript:return validate();" title="Generate"/>

的javascript

function validate() {
    Generate();
}

function Generate() {
    var date = new Date();
    var curdate = date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear();
    var frstDate = document.formname.fromDate.value;
    if (frstDate == curdate) {
        document.getElementById("block1").style.display = "block";
        document.getElementById("block2").style.display = "none";
    } else {
        document.getElementById("block1").style.display = "none";
        document.getElementById("block2").style.display = "block";
    }
}

但这现在正在工作,因为div id没有进入我的生成函数 即使我们选择当前日期或小于

,我也需要使用一个按钮 你可以建议

3 个答案:

答案 0 :(得分:0)

这是你的问题:

onclick属性中,您有validate('Generate');,如果这是您需要定位的div的id,那就没问题。但是,在validate函数定义中,您不能将name变量传递给Generate函数。

相反,你会传递一个“不存在的”&#39;变量divtagsGenerate函数。 (我说'不存在&#39;因为没有其他代码我无法判断它是否存在,但它很可能不存在)

答案 1 :(得分:0)

两个可能的问题。

首先(我认为不会导致您的问题):validate()有一个名为name的参数,该参数未使用。相反,在validate()中调用Generate(divtags)会导致错误,除非divtags是全局变量(在这种情况下,您可能不需要将其作为参数传递)。如果这是问题,validate()需要如下所示:

function validate(name) {
    Generate(name); // passes argument available within the scope of validate()
}

其次(我认为这是你的问题):Generate()不使用传递给它的参数。换句话说,它对divtags参数没有任何作用。您尝试显示/隐藏block1block2,鉴于您提供的HTML有限,可能存在也可能不存在。我相信你正试图改变不存在的元素的显示,这是你的错误。

如果您用更多HTML澄清您的问题,我会更新此答案。

答案 2 :(得分:0)

以下是基于您不明确问题的假设解决方案。你想显示和隐藏divs很好。但是你需要将数据提交给服务器。所以要明确表示你想在提交时或从日期字段中关注时做这个事件。

<!doctype html>
<html lang="en">
    <head>
    <meta charset="utf-8">
    <title>Example</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
    <style>
        #block1,#block2{display:none;}
    </style>
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
    <script>
        function validate() {
            var frstDate = document.forms[0].date.value;
            if (frstDate === "") {
                alert("please select date");
                return false;
            } else {
                Generate();
                return false;
            }
        }

        function Generate() {
            var date = new Date();
            var curdate = date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear();
            var frstDate = document.forms[0].date.value;
            if (frstDate === curdate) {
                document.getElementById("block1").style.display = "block";
                document.getElementById("block2").style.display = "none";
            } else {
                document.getElementById("block1").style.display = "none";
                document.getElementById("block2").style.display = "block";
            }
        }

        $(function() {
            $("#datepicker").datepicker({dateFormat: 'dd/mm/yy'});
        });
    </script>
</head>
<body>
    <form action="" method="post">
        <input type="text" id="datepicker" name="date"/>
        <input type="image" src="" name="generate" onclick="return validate()"/>
    </form>
    <div id="block1">block1</div>
    <div id="block2">block2</div>
</body>