获取没有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();
我想使用 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; ?>
但如果我将此 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();