从ASP标记获取javascript中的null
使用带有母版页的Web表单时,javascript语句会导致im变为空: Javascript:从ASP标记获取javascript中的null,javascript,asp.net,Javascript,Asp.net,使用带有母版页的Web表单时,javascript语句会导致im变为空: Javascript: //becouse I was getting error with this line I change the trigger to the onclick attribute on the button tag, but keep getting the same error //document.getElementById("btn_fecha").onclick =
//becouse I was getting error with this line I change the trigger to the onclick attribute on the button tag, but keep getting the same error
//document.getElementById("btn_fecha").onclick = function() {validaFecha()};
function validaFecha(){
var in_dia = document.getElementById("<%=drp_dia.ClientID%>");
var in_mes = document.getElementById("<%=drp_mes.ClientID%>");
var in_agno = document.getElementById("<%=drp_agno.ClientID%>");
var dia = in_dia.options[in_dia.selectedIndex].value;
var mes = in_mes.options[in_mes.selectedIndex].value;
var agno = in_agno.options[in_agno.selectedIndex].value;
var dia_f = (dia < 10) ? "0" + dia : "" + dia;
var mes_f = (mes < 10) ? "0" + mes : "" + mes;
var fecha = new Date(agno + "-" + mes_f + "-" + dia_f)
var fecha_f = formatDate(fecha);
document.getElementById("txt_fecha_nacimiento").value = fecha_f;
}
function formatDate(date) {
var d = new Date(date),
month = '' + (d.getMonth() + 1),
day = '' + d.getDate(),
year = d.getFullYear();
if (month.length < 2)
month = '0' + month;
if (day.length < 2)
day = '0' + day;
return [year, month, day].join('-');
}
//由于这一行出错,我将触发器更改为button标记上的onclick属性,但仍会出现相同的错误
//document.getElementById(“btn_fecha”).onclick=function(){validaFecha()};
函数validaFecha(){
变量in_dia=document.getElementById(“”);
变量in_mes=document.getElementById(“”);
var in_agno=document.getElementById(“”);
变量直径=直径内选项[直径内选择的索引]。值;
var mes=in_mes.options[in_mes.selectedIndex].value;
var agno=in\u agno.options[in\u agno.selectedIndex].value;
变量直径f=(直径<10)?“0”+直径:”+直径;
变量mes_f=(mes<10)?“0”+mes:“+mes”;
var fecha=新日期(agno+“-”+mes_f+“-”+dia_f)
var fecha_f=格式日期(fecha);
document.getElementById(“txt\u fecha\u nacimiento”).value=fecha\u f;
}
函数格式日期(日期){
var d=新日期(日期),
月份=“”+(d.getMonth()+1),
日期=“”+d.getDate(),
year=d.getFullYear();
如果(月长<2)
月份='0'+月份;
如果(日长<2)
天='0'+天;
返回[年、月、日]。加入('-');
}
这是我很难得到的标签:
<td>
<asp:DropDownList ID="drp_dia" runat="server" ClientIDMode="static"></asp:DropDownList>
</td>
<td>
<asp:DropDownList ID="drp_mes" runat="server"></asp:DropDownList>
</td
<td>
<asp:DropDownList ID="drp_agno" runat="server"></asp:DropDownList>
</td>
<td>
<button Class="btn btn-secondary" ID="btn_fecha" type="button" onclick="validaFecha()">GUARDAR</button>
</td>
我将所有“在我的Javascript中”更改为“简单”,并将ClientMode=“static”放在我所有的asp标记(我想要得到的标记)中,并且只在Javascript get by元素中使用id,而不是“”:
函数validaFecha(){
var in_dia=document.getElementById('drp_dia');
var in_mes=document.getElementById('drp_mes');
var in_agno=document.getElementById('drp_agno');
变量直径=直径内选项[直径内选择的索引]。值;
var mes=in_mes.options[in_mes.selectedIndex].value;
var agno=in\u agno.options[in\u agno.selectedIndex].value;
变量直径f=(直径<10)?“0”+直径:”+直径;
变量mes_f=(mes<10)?“0”+mes:“+mes”;
var fecha=新日期(agno+“-”+mes_f+“-”+dia_f)
var fecha_f=格式日期(fecha);
document.getElementById(“txt\u fecha\u nacimiento”).value=fecha\u f;
}
函数格式日期(日期){
var d=新日期(日期),
月份=“”+(d.getMonth()+1),
日期=“”+d.getDate(),
year=d.getFullYear();
如果(月长<2)
月份='0'+月份;
如果(日长<2)
天='0'+天;
返回[年、月、日]。加入('-');
}
它开始工作了查看呈现的HTML会有所帮助,因为您的javascript报告了一个元素的空值…您在ID=“drp_dia”
dropDownlist上呈现的内容,而所选索引不存在,或者不在选项范围内
function validaFecha(){
var in_dia = document.getElementById('drp_dia');
var in_mes = document.getElementById('drp_mes');
var in_agno = document.getElementById('drp_agno');
var dia = in_dia.options[in_dia.selectedIndex].value;
var mes = in_mes.options[in_mes.selectedIndex].value;
var agno = in_agno.options[in_agno.selectedIndex].value;
var dia_f = (dia < 10) ? "0" + dia : "" + dia;
var mes_f = (mes < 10) ? "0" + mes : "" + mes;
var fecha = new Date(agno + "-" + mes_f + "-" + dia_f)
var fecha_f = formatDate(fecha);
document.getElementById("txt_fecha_nacimiento").value = fecha_f;
}
function formatDate(date) {
var d = new Date(date),
month = '' + (d.getMonth() + 1),
day = '' + d.getDate(),
year = d.getFullYear();
if (month.length < 2)
month = '0' + month;
if (day.length < 2)
day = '0' + day;
return [year, month, day].join('-');
}