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没有进入我的生成函数 即使我们选择当前日期或小于
,我也需要使用一个按钮 你可以建议答案 0 :(得分:0)
这是你的问题:
在onclick
属性中,您有validate('Generate');
,如果这是您需要定位的div的id
,那就没问题。但是,在validate
函数定义中,您不能将name
变量传递给Generate
函数。
相反,你会传递一个“不存在的”&#39;变量divtags
到Generate
函数。 (我说'不存在&#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
参数没有任何作用。您尝试显示/隐藏block1
和block2
,鉴于您提供的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>