我尝试在javascript中更改日期。
首先,实际上我有一个从数据库中选择记录的mysql查询。
这些记录有两个日期,一个名为action的日期,另一个日期用于验证。
事实上,脚本应该更改条件上的日期,但前提是验证日期等于0000-00-00,即数据库的注册被认为无效。
所以我实际上添加了所有未验证属性的字段。
我尝试了下面的代码,我努力做到:
<script type="text/javascript">
function lz(x){
return x.toString().replace(/^(\d)$/,'0$1')
}
function addday() {
var items = new Array();
var itemCount = document.getElementsByClassName("datepicker hasDatepicker");
items[0] = document.getElementById("date" + (1)).value;
items[1] = document.getElementById("date" + (2)).value;
items[2] = document.getElementById("date" + (3)).value;
items[3] = document.getElementById("date" + (4)).value;
items[4] = document.getElementById("date" + (5)).value;
items[5] = document.getElementById("date" + (6)).value;
items[6] = document.getElementById("date" + (7)).value;
items[7] = document.getElementById("date" + (8)).value;
items[8] = document.getElementById("date" + (9)).value;
items[9] = document.getElementById("date" + (10)).value;
for (var i = 0; i < itemCount.length; i++) {
items[i] = document.getElementByAttribute('required').value;
Uncaught TypeError: Object #<HTMLDocument> has no method 'getElementByAttribute'
var itemDtParts = items[i].split("-");
var itemDt = new Date(parseInt(itemDtParts[2],10), parseInt(itemDtParts[1],10)-1, parseInt(itemDtParts[0],10)+ +nb);
nb=document.getElementById('nb').value;
itemCount[i].value = lz(itemDt.getDate())+"-"+lz(itemDt.getMonth()+1)+"-"+itemDt.getFullYear()
}
return items;
}
</script>
但是我返回以下错误:
未捕获TypeError:Object#没有方法'getElementByAttribute'
我不明白为什么。
生成javascript的代码如下:
<script type="text/javascript">
function lz(x){
return x.toString().replace(/^(\d)$/,'0$1')
}
function addday() {
var items = new Array();
var itemCount = document.getElementsByClassName("datepicker hasDatepicker");
<?php $sql2 = "SELECT * FROM agenda WHERE n_doss='".mysql_real_escape_string($_GET['n_doss'])."' AND qualite='".mysql_real_escape_string($_GET['qualite'])."' AND liasse='".$_GET['liasse']."' AND `date_validation`='0000-00-00' ORDER BY `date_action` ASC" ;
$rules2=mysql_query($sql2) ; $i2=0;
while($data2=mysql_fetch_assoc($rules2)) {?>
items[<?php echo $i2 ; ?>] = document.getElementById("date" + (<?php echo ++$i2 ; ?>)).value;
<?php }?>
for (var i = 0; i < itemCount.length; i++) {
items[i] = document.getElementByAttribute('required').value;
var itemDtParts = items[i].split("-");
var itemDt = new Date(parseInt(itemDtParts[2],10), parseInt(itemDtParts[1],10)-1, parseInt(itemDtParts[0],10)+ +nb);
nb=document.getElementById('nb').value;
itemCount[i].value = lz(itemDt.getDate())+"-"+lz(itemDt.getMonth()+1)+"-"+itemDt.getFullYear()
}
return items;
}
</script>
我使用这个微表格来执行函数
<input type="button" value="( - )" width="22" height="22" onClick="subday()" />
<input name="jours" type="text" value="" size="5" id="nb" />
<input type="button" value="( + )" width="22" height="22" onClick="addday()" />
得到我最大的尊重。
亲切的问候。
SP。
答案 0 :(得分:1)
除非你自己创建
,否则没有getElementByAttribute这样的东西XUL有一个 getElementsByAttribute但普通的JS AFAIK无法使用
也许你想这样做?
function addday() {
var items = document.getElementsByClassName("datepicker hasDatepicker");
for (var i = 0; i < items.length; i++) {
if (items[i].getAttribute('required')) {
var itemDtParts = items[i].value.split("-");
var itemDt = new Date(parseInt(itemDtParts[2],10), parseInt(itemDtParts[1],10)-1, parseInt(itemDtParts[0],10)+ +nb);
items[i].value = lz(itemDt.getDate())+"-"+lz(itemDt.getMonth()+1)+"-"+itemDt.getFullYear()
}
}
}