我在自定义功能方面遇到了麻烦。
事实上它不起作用,我真的不知道为什么。
这是功能:
<script type="text/javascript">
function lz(x){
return x.toString().replace(/^(\d)$/,'0$1')
}
function dayplus(){
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();
}
}
}
</script>
它告诉我:
Uncaught SyntaxError: Unexpected token ILLEGAL addday.html:20
此外,它告诉我该功能未定义或情况并非如此。
下面是我使用函数的表单:
<input type="text" class="datepicker hasDatepicker" required value="26-10-2012">
<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="dayplus()" />
答案 0 :(得分:1)
我做了一个小提琴here
我注意到的第一件事是你的标记看起来很奇怪。不应该是
<input type="text" class="datepicker hasDatepicker" required="true" value="26-10-2012">
而不是
<input type="text" class="datepicker hasDatepicker" required value="26-10-2012">
第二件事是无效语法,正如enhzflep和Kimo_do所指出的,nb
未定义,+ + nb
。我用小提琴中的1
替换了它。
答案 1 :(得分:1)
,10)+ +nb);
也许应该是,10)+ nb);
?或,10)+ (+nb) );
如果nb可能是否定的。也就是说 - 它看起来像一个添加+。仔细观察,我也想知道你是否真的是指nb.value或者它的缩写:document.getElementById('nb')。value?
或代码:
var itemDt = new Date(parseInt(itemDtParts[2],10), parseInt(itemDtParts[1],10)-1, parseInt(itemDtParts[0],10) + document.getElementById('nb').value) );
答案 2 :(得分:1)
修改后的代码:jsfiddle。更改:nb
缺失,您使用+ +
添加nb
<input type="text" class="datepicker hasDatepicker" required=true value="26-10-2012">
<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="dayplus()" />
<script type="text/javascript">
function lz(x){
return x.toString().replace(/^(\d)$/,'0$1');
}
function dayplus(){
var items = document.getElementsByClassName("datepicker hasDatepicker");
nb = 1;
for (var i = 0; i < items.length; i++){
if (items[i].getAttribute('required')){
var itemDtParts = items[i].value.split("-");
var itemDt = new Date(itemDtParts[2], parseInt(itemDtParts[1] ,10)-1, parseInt(itemDtParts[0],10) +nb);
items[i].value = lz(itemDt.getDate())+"-"+lz(itemDt.getMonth()+1)+"-"+itemDt.getFullYear();
}
}
}
</script>