获取没有id的元素

时间:2015-01-10 00:58:13

标签: javascript jquery datepicker

我想使用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; ?>

,hs验证无效

但如果我将此ID更改为sinceedit,则js正在运行......

但我还需要id中的那些<?php echo $u->id; ?>部分,因为其他依赖...

如何解决此问题?我在js完全是新手。

1 个答案:

答案 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();