我对if
条件有疑问。我写了一个脚本,当字段alert
的值小于21(计算的人的年龄)时,该脚本应显示#customer-age
。问题是 - 每次都显示警报 - 当值小于且大于21时。
我的HTML代码是:
<div class="type-text">
<label for="birthday">Date1:</label>
<input type="text" size="20" id="birthday" name="birthday" value="" readonly="readonly" />
</div>
<div class="type-text">
<span id="customer-age" readonly="readonly"></span>
</div>
<span id="date_from_start">23/11/2012</span>
和脚本看起来像:
function getAge() {
var sday = $('#date_from_start').html();
var split_date1 = sday.split("/");
var todayDate = new Date(split_date1[2],split_date1[1] - 1,split_date1[0]);
var bday = $('#birthday').val();
var split_date2 = bday.split("/");
var birthDate = new Date(split_date2[2],split_date2[1] - 1,split_date2[0]);
var age = todayDate.getFullYear() - birthDate.getFullYear();
var m = todayDate.getMonth() - birthDate.getMonth();
if (m < 0 || (m === 0 && todayDate.getDate() < birthDate.getDate())) {
age--;
}
return age;
}
var startDate = new Date("1935,01,01");
$('#birthday').datepicker({
dateFormat: 'dd/mm/yy',
dayNamesMin: ['Nie', 'Pon', 'Wt', 'Śr', 'Czw', 'Pt', 'Sob'],
dayNames: ['Niedziela','Poniedzialek','Wtorek','Środa','Czwartek','Piątek','Sobota'],
monthNamesShort: ['Sty', 'Lut', 'Mar', 'Kwi', 'Maj', 'Cze', 'Lip', 'Sie', 'Wrz', 'Paź', 'Lis', 'Gru'],
changeMonth: true,
changeYear: true,
numberOfMonths: 1,
constrainInput: true, firstDay: 1, dateFormat: 'dd/mm/yy',
yearRange: '-77:-18',
defaultDate: startDate,
onSelect: function(dateText, inst) {
$('#customer-age').html(getAge(new Date(dateText)));
var cage = $('#customer-age').val();
if (cage < 21)
{
alert('< 21 year');
}
else {
}
},
maxDate: +0
});
上查看的工作代码
答案 0 :(得分:3)
更改您的行:
var cage = $('#customer-age').val();
到
var cage = parseInt($('#customer-age').html(), 10);
添加了: 你的意思是:
var infoContent = $.trim( $("#info").html() );
alert( infoContent );
答案 1 :(得分:1)
.val()
在span标记上无效,不会返回任何内容。
请改用.html()
。 .text()
也可以。
您不需要明确地将其解析为Int,这是自动完成的。
var cage = $('#customer-age').html();
答案 2 :(得分:1)
答案 3 :(得分:0)
条件没有问题,我认为你的日期选择器中存在错误。
将代码更改为此,请查看我的意思:
if (cage < 21)
{
alert(cage);
}
else
{
}
变量 cage 的值为空。那将是NaN。
答案 4 :(得分:0)
两件事:
您正在比较字符串,您应该使用parseInt()
转换为整数然后进行比较。
cage
为空;