在Javascript中获取正确的元素
Getting the Right Elements in Javascript
我有一个简单的小javascript,我已经以不同的形式使用了很多次。它与两个日期选择器一起使用,以便将第一个日期选择器中的选定日期复制到第二个日期选择器中。它看起来像这样:
MouseOver = true;
function date_copy_set() {
FirstMouseOver = true;
}
function date_copy() {
if (FirstMouseOver && MouseOver) {
frames.booking.DepartureDate.value=frames.booking.ArrivalDate.value;
FirstMouseOver = false;
MouseOver = false;
} else {
}
}
现在我有一个新的应用程序的脚本,其中有几个非常相似的版本的表单在页面上,我还没有能够得到脚本的工作。该表格将有2到8个版本,其简化形式为:
<form action="/book/book1.php" method="post" target="_blank"
id="booking_<?php echo $row_season['season_id'] ?>" name="booking">
<input name="ArrivalDate" id="ArrivalDate" class="datebox"
size="10" onBlur="date_copy_set()" type="date">
<input name="DepartureDate" id="DepartureDate" class="datebox"
size="10" onFocus="date_copy()" type="date">
<a href="javascript:void()"
onclick="frames.booking_<?php echo $row_season['season_id'] ?>.submit()"
class="buttonPriceBook">Enquire or Book</a></td>
</form>
在id中包含season_id确保所有id都是唯一的,因此提交按钮可以工作。然而,我不能看到一个整洁的方法来做同样的事情与脚本复制日期。我已经尝试了getElementsByName和getElementsByClassName的各种排列,没有任何成功。
如果表单中的输入都具有相同的名称,即ArrivalDate和DepartureDate,那么您可以通过使用this:
将值传递给调用侦听器的元素来将值从一个复制到另一个。<input name="ArrivalDate" ... onblur="date_copy_set(this)" ...>
<input name="DepartureDate" ... onblur="date_copy_set(this)" ...>
现在在方法中:
function date_copy_set(element) {
if (element.name == 'ArrivalDate') {
element.form.DepartureDate.value = element.value;
} else if (element.name == 'DepartureDate') {
element.form.ArrivalDate.value = element.value;
}
}
这样,如果到达日期更改,它将设置出发日期,反之亦然。
注意每个输入对必须是不同的形式,ID属性是不必要的。
其他一些东西-总是声明变量:
var FirstMouseOver, MouseOver = true;
使用:
提交表单<a href="javascript:void()"
onclick="frames.booking_<?php echo $row_season['season_id'] ?>.submit()"
class="buttonPriceBook">Enquire or Book</a>
对我来说没有任何意义,只需使用提交按钮。至少,不要使用带有修改过的href属性的A元素,而应该使用有样式的span或其他更合适的元素。
相关文章:
- React - 从 DOM 元素获取组件以进行调试
- 如何使用 JQuery 从相对元素获取 html 文本
- 从同一域上的 iframe 中的元素获取值
- 使用本机 Javascript 从 DOM 元素获取选择器字符串
- 使用jquery从另一个元素获取使用id的输入的id
- 如何从角度元素获取编译的节点值
- 如何为不同的元素获取不同的父类
- 从 jQuery 中的子元素获取父 tr 元素
- 当浮点部分为空时,从 JQuery 中的输入元素获取数字值不起作用
- 从 XML 元素获取文本
- 从音频元素获取音频样本
- 从所选元素 html 上方的元素获取属性值
- 使用 jQuery.data 从 dom 元素获取布尔值
- 如何通过jquery从某个元素获取部分文本
- 从输入元素获取表单和表单数据对象
- 从动态元素获取挖空视图的大小
- 从中继器循环中显示的子自定义元素获取正确的上下文.奥蕾莉亚
- 如何使用 JavaScript 或 JQuery 从输入类型=文件 html 元素获取文件名
- 从父元素获取 ID 并将它们放在数组中
- 尝试从选项元素获取 HTML