Javascript 重复表单输入
Javascript duplicate form input
我有一个表单,我需要两个字段相同。在设置第一个之后,我正在尝试使用 javascript 使第二个与第一个相同。
这是javascript(在我的标签上方)
<script type="text/javascript" charset="utf-8">
function updateDate(){
startDate = document.getElementById("startdate").value;
document.getElementById("enddate").value = startDate;
} </script>
HTML如下:
<span class="em-events-search-dates em-date-range">
<input type="text" id="startdate" class="em-date-input-loc em-date-start" onchange="updateDate();" />
<input type="hidden" class="em-date-input" name="scope[0]" value="<?php if( !empty($_REQUEST['scope'][0]) ) echo $_REQUEST['scope'][0]; ?>" />
<input type="text" id="enddate" class="em-date-input-loc em-date-end" />
<input type="hidden" class="em-date-input" name="scope[1]" value="<?php if( !empty($_REQUEST['scope'][1]) ) echo $_REQUEST['scope'][1]; ?>" />
</span>
我遇到的问题是,当您单击表单字段时,它会打开一个日期选择器。我很确定它使用这个确切的插件 http://jqueryui.com/demos/datepicker/
不幸的是,这意味着在选择日期后,您从未实际单击表单字段,并且您从未键入任何内容。
我尝试在第二个字段上 onmouseout(带有类 em-date-input 的隐藏字段)我尝试在第一个带有 id 开始日期的元素上更改
有一些有效,只有当您返回并单击所选日期的可见字段时。问题是,用户永远不会这样做。
我甚至尝试在提交按钮上放置onsubmit="updateDate();",希望当您单击它时,它会在提交表单之前更改第二个日期。没有运气。有什么建议吗?
编辑:添加了警报以查看哪些有效,哪些无效
<input type="text" onchange="alert('first');" id="startdate" class="em-date-input-loc em-date-start" />
<input type="hidden" onchange="alert('second');" class="em-date-input" name="scope[0]" value="<?php if( !empty($_REQUEST['scope'][0]) ) echo $_REQUEST['scope'][0]; ?>" />
<input type="text" onchange="alert('third');" id="enddate" class="em-date-input-loc em-date-end" />
<input type="hidden" onchange="alert('fourth');" class="em-date-input" name="scope[1]" value="<?php if( !empty($_REQUEST['scope'][1]) ) echo $_REQUEST['scope'][1]; ?>" />
当我更改第二个框上的日期(id="enddate")时,它会触发第三个警报。即使我多次或通过键入更改第一个框中的日期,也不会触发其他警报。
在提交事件之前使用表单:
onsubmit="return YOUR_FUNCTION_HERE()"
只需将其添加到您的提交按钮即可。
,然后在该函数中设置值:
var YOUR_FUNCTION_HERE = function(){
//set your hidden inputs
}
如果我理解你的问题,那么你可能想要这个(对你的问题有点困惑)
$(function(){
$('#startdate, #enddate').datepicker();
$('#startdate').on('change', function(e){
$('#enddate').val($('#startdate').val());
});
});
演示或这个。
您需要将
onchange
事件挂接到textbox
,然后在触发后复制数据。它应该在日期选取器更新值后触发。
相关文章:
- Nodejs服务器在解析之前生成输入表单
- 如何创建打开警报框的输入表单
- JavaScript onChange 事件侦听器对输入表单不起作用
- 如何在 OnKeyPress 事件后获取输入表单元素的值
- 单输入表单 - 特殊情况 |停止表单提交
- 需要输入表单验证
- 如何在谷歌图表中使用输入表单值
- 使用jquery可交换地更改两个html输入表单值
- 当从jqueryajax调用输入表单时,它不起作用
- 控制器作为搜索输入表单的语法
- 删除带有按钮的输入表单失败
- 验证带有2个小数点的浮点形式的输入表单
- AngularJS:输入表单在分部中不起作用
- 如何从php中的输入表单调用Javascript函数,以更改HTML
- 输入表单中的Sharepoint javascript
- 当点击输入表单时,为Raphael制作的对象添加光晕
- 当用户将数据输入表单时要知道的事件
- 保存输入表单后ImageMap颜色更改
- 链接输入表单中的填充脚本
- 有关多个输入表单验证的问题