我想使用jquery datepicker验证来验证日期..这是我的代码:
<script type="text/javascript">
$(document).ready(function(){
$("#sinceedit").datepicker({
numberOfMonths: 1,
onSelect: function(selected) {
$("#toedit").datepicker("option","minDate", selected)
}
});
$("#toedit").datepicker({
numberOfMonths: 1,
onSelect: function(selected) {
$("#sinceedit").datepicker("option","maxDate", selected)
}
});
});
</script>
这是HTML标记:
<div class="col-sm-3">
<input type="text" class="form-control document-date" name="since" id="sinceedit<?php echo $u->id; ?>" value="<?php echo $user->taken_since ? date("d.m.Y", strtotime($user->taken_since)) : ''; ?>" placeholder="" />
</div>
<div class="col-sm-3">
<input type="text" class="form-control document-date" name="to" id="toedit<?php echo $u->id; ?>" value="<?php echo $user->taken_to ? date("d.m.Y", strtotime($user->taken_to)) : ''; ?>" placeholder="" />
</div>
在这种情况下,由于html标识sinceedit<?php echo $u->id; ?>
但如果我将此ID更改为sinceedit
,则js正在运行......
但我还需要id中的那些<?php echo $u->id; ?>
部分,因为其他依赖...
如何解决此问题?我在js完全是新手。
答案 0 :(得分:0)
你知道页面上会有多少这样的输入吗?
如果它们是动态创建的并且它们的数量可以改变,那么你的JS也需要是动态的。一种解决方案是使用PHP内联Javascript。定义您可能需要在外部脚本文件中调用这些输入的函数,然后内联尝试将它们作为参数传递,例如:
<script>
$(function() {
doThingWithInput($('.sinceedit<?php echo $id; ?>'));
});
</script>
但是在你的情况下,你很可能想要使用jQuery each()函数。编写一个选择器,它将选择您要使用的所有输入,并编写一个回调函数,该函数将分别在每个输入上调用。 Look here
$('input').each(function() { .... });
编辑:实际上,如果您拥有的是最小值和最大值,您应该能够为每个人提供一个课程并以这种方式选择它们。或者更简单,按名称选择。
<input class="form-control document-date from-date" .... />
$('.from-date').doCoolStuff();
$('input[name="since"]').doCoolStuff();