我使用Ajax Calender查找Age,我在一个文本框中使用了日历,并在Next Texbox上显示了Age。直到现在一切都很好,但现在我有两个问题
第一个问题: - 我希望Age Textbox被禁用,以便用户无法更改Age,但是当我禁用它时不会在数据库中存储任何内容,现在我不明白该怎么做
第二个问题: - 用户可能手动开始输入DOB,而不是从日历中选择,在这种情况下,没有计算任何内容,如何以仍然计算年龄的方式应用功能。
JavaScript代码如下,现在如何在用户在文本框中手动输入D.O.B时使其工作!!
<script type="text/javascript">
function DateSelectionChanged(e) {
var today = new Date();
var dob = e.get_selectedDate();
var months = (today.getMonth() - dob.getMonth() +
(12 * (today.getFullYear() - dob.getFullYear())));
document.getElementById("txtCONSULTANT_AGE").value= Math.round(months/12);
document.getElementById("txtCONSULTANT_AGE").readOnly = true;
}
</script>
这里在Ajax Calender Extender的OnClientDateSelectionChanged上调用DateSelectionChanged
谢谢你的进步。
答案 0 :(得分:0)
这会给你年龄:
var age = Math.floor(((new Date()).getTime()-(new Date($('#myAgeTextBox').val())).getTime())/(1000*60*60*24*365));
其中myAgeTextBox
是文本框的ID(假设用户以正确的格式输入了日期)
编辑:使代码更具可读性
var currentDate = (new Date()).getTime();
var dobDate = (new Date($('input').val())).getTime();
var annualMilliSeconds = 1000*60*60*24*365;
var age = Math.floor((currentDate-dobDate)/(annualMilliSeconds));
答案 1 :(得分:0)
使用HTML使用
禁用年龄框<input type="text" name="age" readonly="readonly" />
或
<input type="text" name="age" disabled />
供JavaScript使用
document.getElementById('age').readOnly = true;`
或者
document.getElementById('age').disabled = true;
注意:仅当您要将其从提交中删除时才应使用
答案 2 :(得分:0)
我解决了我的问题,非常简单。
创建另一个函数,在该函数中只从文本框中获取值并传入变量dob,所以它将是这样的: - 早期: -
dob = e.get_selectedDate();
现在
dob = (new Date(document.getElementById("txtDATE_OF_BIRTH").value));
其他一切都会保持不变。所以最终的代码是
function findage() {
var PresentDay = new Date();
var dob = (new Date(document.getElementById("txtDATE_OF_BIRTH").value));
var months = (PresentDay.getMonth() - dateOfBirth.getMonth() +
(12 * (PresentDay.getFullYear() - dateOfBirth.getFullYear())));
document.getElementById("txtCONSULTANT_AGE").value=Math.round(months/12);
}