![](/img/trans.png)
[英]How can javascript work perfectly in FireFox, but not work at all in other browsers?
[英]How to make this work in all other browsers other than Firefox
我有一个选择列表,里面有数字。 这些数字从0到30。我想根据除当前日期和用户设置的日期以外的天数来隐藏数字。
因此,如果今天是2010年7月28日,并且它们设置为2010年7月29日,则应该仅显示“ 0”。
如果是2010年7月28日,而他们将时间设置为2010年9月20日,则应显示0到30。
所以我有这个
var selectedDate = new Date($('#TextBox').val().replace(/\/(\d\d)$/, "/20$1"));
var currentDate = new Date();
var month = currentDate.getMonth() + 1
var day = currentDate.getDate()
var year = currentDate.getFullYear()
currentDate = new Date(month + "/" + day + "/" + year);
if (isNaN(selectedDate) == false)
{
$('#selectList').find('select').attr('disabled', '');
var diffDays = parseInt((selectedDate - currentDate) / (1000 * 60 * 60 * 24));
var Options = $('#selectList').find('option');
jQuery.each(Options, function (i, value)
{
var currentValue = $(this).val();
if (currentValue == -1)
{
// equal to continue;
return true;
}
else if (currentValue >= diffDays)
{
$(this).hide();
}
else
{
$(this).show();
}
});
}
此代码在用户选择日期的文本框更改时发生。
这在FireFox中工作正常,但在任何其他浏览器中均无效。 我不知道为什么 在任何浏览器中均未显示任何错误。
您根本无法像这样的跨浏览器那样隐藏/显示<option>
元素,您需要具有备份/隐藏的<select>
并每次仅复制您想要的<option>
元素,或者只是禁用<option>
不想被选择的元素,但是这将使它们可见。
克隆位看起来像这样:
var hiddenSelect = $("#selectList").find('select').clone();
var selectedDate = new Date($('#TextBox').val().replace(/\/(\d\d)$/, "/20$1"));
var currentDate = new Date();
var month = currentDate.getMonth() + 1
var day = currentDate.getDate()
var year = currentDate.getFullYear()
currentDate = new Date(month + "/" + day + "/" + year);
if (isNaN(selectedDate) == false) {
$('#selectList').find('select').attr('disabled', '');
var diffDays = parseInt((selectedDate - currentDate) / (1000 * 60 * 60 * 24));
var select = $('#selectList').find('select').empty();
hiddenSelect.children().each(function(i, value) {
if (value == -1) {
return true;
}
else if (currentValue < diffDays) {
$(this).clone().appendTo(select);
}
});
}
我们只是将原始副本的克隆副本保留在名为hiddenSelect
的变量中,(通过.empty()
)清空UI中可见选项的选项,然后遍历/克隆要查看的选项可见选择。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.