我前台 定义了JS脚本 用来验证 日历控件(Calendar)输入的格式是否是日期型的 ,
<script>
function checkDate()
{
var obj=document.getElementById("Calendar1"); var js=0;
var temp=obj.value;
var pattern=/^(\d{4})-(\d{2})-(\d{2})$/i
var matches=temp.match(pattern);
document.getElementById("Hid").value=js; if(matches) //匹配 DDDD-DD-DD 的形式
{
var tempDate=new Date(matches[1],matches[2]-1,matches[3]);
if(tempDate.getYear()!=matches[1]||tempDate.getMonth()!=(matches[2]-1)||tempDate.getDate()!=matches[3]) //检查是否正确日期 比如9923-15-48 等形式
{
js=1;
document.getElementById("Hid").value=js;
}
}
else
{
js=1;
document.getElementById("Hid").value=js;
}
}
</script> 两个日历控件
<cc1:Calendar ID="Calendar1" runat="server" Width="299px"
IsWrite="False"></cc1:Calendar> <cc1:Calendar ID="Calendar2" runat="server" Width="299px"
IsWrite="False"></cc1:Calendar>定义隐藏域来传递 js的值
<asp:HiddenField ID="Hid1" runat="server" Value=""/>后台获取JS的值
int hd =int.Parse( Hid.Value);
请问我第二个日历控件 calendar2 也能像第一个一样传值到后台去,我试过复制JS但总是不能两个都传过去,只能传第一个日历控件的值,谁能提供两个值都传过去的解决办法?
<script>
function checkDate()
{
var obj=document.getElementById("Calendar1"); var js=0;
var temp=obj.value;
var pattern=/^(\d{4})-(\d{2})-(\d{2})$/i
var matches=temp.match(pattern);
document.getElementById("Hid").value=js; if(matches) //匹配 DDDD-DD-DD 的形式
{
var tempDate=new Date(matches[1],matches[2]-1,matches[3]);
if(tempDate.getYear()!=matches[1]||tempDate.getMonth()!=(matches[2]-1)||tempDate.getDate()!=matches[3]) //检查是否正确日期 比如9923-15-48 等形式
{
js=1;
document.getElementById("Hid").value=js;
}
}
else
{
js=1;
document.getElementById("Hid").value=js;
}
}
</script> 两个日历控件
<cc1:Calendar ID="Calendar1" runat="server" Width="299px"
IsWrite="False"></cc1:Calendar> <cc1:Calendar ID="Calendar2" runat="server" Width="299px"
IsWrite="False"></cc1:Calendar>定义隐藏域来传递 js的值
<asp:HiddenField ID="Hid1" runat="server" Value=""/>后台获取JS的值
int hd =int.Parse( Hid.Value);
请问我第二个日历控件 calendar2 也能像第一个一样传值到后台去,我试过复制JS但总是不能两个都传过去,只能传第一个日历控件的值,谁能提供两个值都传过去的解决办法?
你复制了,但是两个全都是更改的同一个hidden,当然只能得到一个了。
这个也要改。改成第二个日历控件的id
用二个隐藏域就直接付给不同的value就行了
这里是定义了2个JS 第一个是给calendar1用的 叫checkdate
第二个给calendar2用叫checkdate2
<script>
function checkDate()
{
var obj=document.getElementById("Calendar1"); var js=0;
var temp=obj.value;
var pattern=/^(\d{4})-(\d{2})-(\d{2})$/i
var matches=temp.match(pattern);
document.getElementById("Hid").value=js; if(matches) //匹配 DDDD-DD-DD 的形式
{
var tempDate=new Date(matches[1],matches[2]-1,matches[3]);
if(tempDate.getYear()!=matches[1]||tempDate.getMonth()!=(matches[2]-1)||tempDate.getDate()!=matches[3]) //检查是否正确日期 比如9923-15-48 等形式
{
js=1;
document.getElementById("Hid").value=js;
}
}
else
{
js=1;
document.getElementById("Hid").value=js;
}
}
</script>
<script>
function checkDate2()
{
var obj2=document.getElementById("Calendar2"); var js2=0;
var temp2=obj2.value;
var pattern=/^(\d{4})-(\d{2})-(\d{2})$/i
var matches2=temp2.match(pattern);
document.getElementById("Hid").value=js2; if(matches2) //匹配 DDDD-DD-DD 的形式
{
var tempDate2=new Date(matches2[1],matches2[2]-1,matches2[3]);
if(tempDate2.getYear()!=matches2[1]||tempDate2.getMonth()!=(matches2[2]-1)||tempDate2.getDate()!=matches2[3]) //检查是否正确日期 比如9923-15-48 等形式
{
js2=1;
document.getElementById("Hid2").value=js2;
}
}
else
{
js2=1;
document.getElementById("Hid2").value=js2;
}
}
</script> 这里定义了2个隐藏域控件
<asp:HiddenField ID="Hid" runat="server" Value=""/>
<asp:HiddenField ID="Hid2" runat="server" Value=""/>后台代码为
int hd =int.Parse( Hid.Value);
int hd2 =int.Parse( Hid2.Value);
为什么hd 和hd2 我总是只能取到一个值啊 ?另一个为空值?
谁再帮我看看啊?谢谢大家
可以用手工方式,也可以用安装ASPAJAXExt插件,方便易用。
你看看你第二个方法里面……document.getElementById("Hid").value=js2;
你明明就是往一个hid里放值。。改也要改彻底一点吧?