获取没有id的元素

Getting element without id

我想使用 jquery 日期选择器验证来验证日期。这是我的代码:

<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 id sinceedit<?php echo $u->id; ?>

,hs 验证不起作用

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

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

如何解决这个问题?我对js完全是新手。

您知道页面上会有多少这样的输入吗?

如果它们是动态创建的并且它们的数量可能会发生变化,那么您的 JS 也需要是动态的。一种解决方案是使用内联 Javascript 和 PHP。在外部脚本文件中定义您可能需要调用这些输入的函数,然后内联尝试将它们作为参数传递,例如:

<script>
$(function() {
  doThingWithInput($('.sinceedit<?php echo $id; ?>'));
});
</script>

但在您的情况下,您很可能希望使用 jQuery each() 函数。编写一个 selector 将 select 您要使用的所有输入,并编写一个回调函数,将分别调用它们中的每一个。 Look here.

$('input').each(function() { .... });

编辑:实际上,如果你只有一个最小值和最大值,你应该能够给每个值一个 class 并且 select 那样。或者更简单,按名称 select。

<input class="form-control document-date from-date" .... />
$('.from-date').doCoolStuff();


$('input[name="since"]').doCoolStuff();