我使用的是jQuery 1.11x,我有两个用户可以选择日期的文本字段(不是jquery datepicker,而是一个包含大量代码的自定义js日历),两个文本框都有自己的id,就像date1和date2一样。但是,可以选择其中之一,但不能同时选择两者,我试图动态确定文本框中所选日期的值。
例如,如果我知道id,我可以使用:
var date = new Date($(#date1).val());
获取价值,但我不知道用户选择了哪一个。有一个onclick事件触发自定义js日历代码,它传递这样的元素:
onClick="setDateField(document.Form1.date1); etc... opens a new window for the calendar
使用用户选择的值设置文本框的字符串日期。当用户点击我的提交按钮时,我有一个验证功能,我需要从中获取日期值,但我不确定使用了哪个文本框?
类似的东西:
onclick="javascript:validate(document.Form1.date1,1);" or
onclick="javascript:validate(document.Form1.date2,1);"
在上面一行",1"只是日历的显示格式参数。
所有这一切的问题在于它是非常古老的jsp代码,我必须使用scriptlet来显示date1或date2文本框,具体取决于我是否正在检索要显示的数据或允许新的用户输入。
那么有没有办法动态获取文本框的值而不知道它的ID?
答案 0 :(得分:1)
您可以像这样检测最后点击的输入ID:
<tr><td valign="top" style="width: 150px;">Status</td>
<td><select name='call_status'>
<option value='0'<?php if($site_calls->call_status == 0){echo ' selected';}?>>Open</option>
<option value='2'<?php if($site_calls->call_status == 2){echo ' selected';}?>>Checking</option>
<option value='1'<?php if($site_calls->call_status == 1){echo ' selected';}?>>Closed</option>
<option value='3'<?php if($site_calls->call_status == 3){echo ' selected';}?>>Deleted</option>
</select>
</td></tr>
<tr><td>Staff</td><td><select name='call_staff'>
<option value="0"></option>
<?php $staff_name = $db->get_results("select user_id,user_name from site_users where user_level<>1 order by user_name;");
foreach ($staff_name as $staff )
{?>
<option value='<?php echo $staff->user_id;?>'<?php if($staff->user_id == $call_staff){echo ' selected';}?>><?php echo $staff->user_name;?></option>
<?php } ?>
</select></td></tr>
或者像这样得到最后一个输入值:
$('input[id^=date]').on('focus', function() {
var lastUsedDateInputId = $(this).attr('id');
});