首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从$(window).on('load',function()

从$(window).on('load',function()
EN

Stack Overflow用户
提问于 2019-12-14 13:23:11
回答 1查看 43关注 0票数 0

我在这里使用了一个稍微修改过的脚本版本,即Select start time between start and end time

脚本

代码语言:javascript
复制
$(window).on('load', function() {

$("select[name='SelectedTime1']").on("change", function(){
    $("select[name='SelectedTime2']").empty();
    var startix = $("select[name='SelectedTime1'] option:selected").index();
    $("select[name='SelectedTime1'] option").each(function(ix, el){
        if (ix >= startix) {
            $(this).clone().appendTo("select[name='SelectedTime2']");
        }
    });
});

    });

用于在页面重新加载后将选定时间保留在每个下拉列表中的脚本。

代码语言:javascript
复制
  function show2(time1) { 
  var success = -1;
  for (var i=0; i < document.frmLocate.SelectedTime1.length; i++) {
    if (document.frmLocate.SelectedTime1.options[i].value == time) 
      success = [i];
  }
  document.frmLocate.SelectedTime1.selectedIndex=success;
}
function show4(time2) { 
  var success = -1;
  for (var i=0; i < document.frmLocate.SelectedTime2.length; i++) {
    if (document.frmLocate.SelectedTime2.options[i].value == time) 
      success = [i];
  }
  document.frmLocate.SelectedTime2.selectedIndex=success;

下拉列表

代码语言:javascript
复制
<label for="SelectedTime1-set">1st Time:
  <select name="SelectedTime1" id="SelectedTime1-set">
    <option>08:00 AM </option>
    <option>09:00 AM</option>
    <option>10:00 AM</option>
    <option>11:00 AM</option>
    <option>12:00 PM</option>
    <option>01:00 PM</option>
    <option>02:00 PM</option>
    <option>03:00 PM</option>
    <option>04:00 PM</option>
    <option>05:00 PM</option>
    <option>06:00 PM</option>
    <option>07:00 PM</option>
    <option>08:00 PM</option>
    <option>09:00 PM</option>
  </select></label>
  &nbsp;
      <label for="SelectedTime2-set">2nd Time:
      <select name="SelectedTime2" id="SelectedTime2-set">
        <option>08:00 AM </option>
        <option>09:00 AM</option>
        <option>10:00 AM</option>
        <option>11:00 AM</option>
        <option>12:00 PM</option>
        <option>01:00 PM</option>
        <option>02:00 PM</option>
        <option>03:00 PM</option>
        <option>04:00 PM</option>
        <option>05:00 PM</option>
        <option>06:00 PM</option>
        <option>07:00 PM</option>
        <option>08:00 PM</option>
    <option>09:00 PM</option>
  </select></label>
  &nbsp;

这两个下拉列表是表单的一部分,表单在执行API请求后提交回页面,SelectedTime2不应位于SelectedTime1之前。

这两个下拉列表具有相同的选项,从上午8点到晚上9点该脚本将隐藏在SelectedTime1中选择的时间之前的SelectedTime2中的时间。

我需要发生的事情:在表单发布后,让SelectedTime2中的早期时间保持隐藏。

post之后,选定的时间仍然保留,但SelectedTime2中较早的时间会取消隐藏。

我希望防止未来的技术支持电话“为什么页面是空白的”,因为他们不关注AM/PM。他们选择第一个下午6点和第二个上午9点,而实际上应该是晚上9点。

谢谢

肖恩

EN

回答 1

Stack Overflow用户

发布于 2019-12-15 09:48:59

做了一些内务工作,并将2个合并为1个功能

下拉列表

代码语言:javascript
复制
   <label for="StartTime-set">1st Time:
      <select name="StartTime" id="StartTime-set" onchange="setEndDate()">
        <option>08:00 AM </option>
        <option>09:00 AM</option>
        <option>10:00 AM</option>
        <option>11:00 AM</option>
        <option>12:00 PM</option>
        <option>01:00 PM</option>
        <option>02:00 PM</option>
        <option>03:00 PM</option>
        <option>04:00 PM</option>
        <option>05:00 PM</option>
        <option>06:00 PM</option>
        <option>07:00 PM</option>
        <option>08:00 PM</option>
        <option>09:00 PM</option>
      </select>
    </label>
    &nbsp;
    <label for="EndTime-set">2nd Time:
      <select name="EndTime" id="EndTime-set">
        <option>08:00 AM </option>
        <option>09:00 AM</option>
        <option>10:00 AM</option>
        <option>11:00 AM</option>
        <option>12:00 PM</option>
        <option>01:00 PM</option>
        <option>02:00 PM</option>
        <option>03:00 PM</option>
        <option>04:00 PM</option>
        <option>05:00 PM</option>
        <option>06:00 PM</option>
        <option>07:00 PM</option>
        <option>08:00 PM</option>
        <option>09:00 PM</option>
      </select>
    </label>

函数

代码语言:javascript
复制
function setEndDate() { 

    $("select[name='EndTime']").empty();
    var startix = $("select[name='StartTime'] option:selected").index();
    $("select[name='StartTime'] option").each(function(ix, el){
        if (ix >= startix) {
            $(this).clone().appendTo("select[name='EndTime']");
        }

}); 
  var success = -1;
  for (var i=0; i < document.frmLocate.EndTime.length; i++) {
    if (document.frmLocate.EndTime.options[i].value == endTime) 
      success = [i];
  }
  document.frmLocate.EndTime.selectedIndex=success;

} 

body标签

代码语言:javascript
复制
<body onload="setEndDate()">

当页面加载或StartTime下拉列表更改时,将设置EndTime下拉列表。在第一次加载页面时,必须为EndTime做出初始选择,这在我的例子中更可取。

希望有人会发现它很有用,或者建议一些额外的清理工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59332533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档