You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击「按日期获取推文数量」单选按钮后如何删除指定输入框?

解决方案

首先需要给「Select end period」相关元素添加容器,方便定位操作,然后修改原有yesnoCheck函数实现对应逻辑。

修改后的完整代码

HTML部分

<form>
  <input type="radio" onclick="yesnoCheck();" name="yesno" id="noCheck">Select period <br>
  <br>
  <input type="radio" onclick="yesnoCheck();" name="yesno" id="yesCheck">Number of Tweets from a date<br><br>
  <div id="ifYes" style="display:none">
    Number of desired tweets <input type="number" min="1" max="20" id='yes' name='yes'><br>
  </div>


  <br>
  <img src="icon2.png"><label for="date">Select begin period:</label><br>
  <input type="datetime-local" id="Test_DatetimeLocal_Begin"><br><br>
  <!-- 给结束时间段元素包裹容器 -->
  <div id="endPeriodContainer">
    <img src="icon2.png"><label for="date">Select end period:</label><br>
    <input type="datetime-local" id="Test_DatetimeLocal_End"><br><br>
  </div>
  <input type="submit" value="Submit" class="submit">
</form>

注:原代码中两个datetime-local的id重复,这里修改为Test_DatetimeLocal_Begin和Test_DatetimeLocal_End,避免DOM操作冲突。

JavaScript部分

方式一:隐藏结束时间段区域(推荐,切换单选按钮可恢复)
function yesnoCheck() {
  const yesCheck = document.getElementById('yesCheck');
  const ifYes = document.getElementById('ifYes');
  const endPeriodContainer = document.getElementById('endPeriodContainer');

  if (yesCheck.checked) {
    ifYes.style.display = 'block';
    endPeriodContainer.style.display = 'none';
  } else {
    ifYes.style.display = 'none';
    endPeriodContainer.style.display = 'block';
  }
}
方式二:彻底删除结束时间段的input元素(删除后需手动恢复)
// 提前保存结束时间段input的引用
let endPeriodInput = document.getElementById('Test_DatetimeLocal_End');

function yesnoCheck() {
  const yesCheck = document.getElementById('yesCheck');
  const ifYes = document.getElementById('ifYes');
  const endPeriodContainer = document.getElementById('endPeriodContainer');

  if (yesCheck.checked) {
    ifYes.style.display = 'block';
    // 若input存在则删除
    if (endPeriodInput && endPeriodInput.parentNode) {
      endPeriodInput.parentNode.removeChild(endPeriodInput);
      endPeriodInput = null;
    }
  } else {
    ifYes.style.display = 'none';
    // 若input已删除,重新创建并添加到容器
    if (!endPeriodInput) {
      endPeriodInput = document.createElement('input');
      endPeriodInput.type = 'datetime-local';
      endPeriodInput.id = 'Test_DatetimeLocal_End';
      endPeriodContainer.insertBefore(document.createElement('br'), endPeriodContainer.lastChild);
      endPeriodContainer.insertBefore(endPeriodInput, endPeriodContainer.lastChild);
    }
  }
}

关键说明

  • 给结束时间段元素加容器是为了更便捷地控制显示/隐藏,或定位要删除的input。
  • 修复原代码id重复问题,避免DOM操作异常。
  • 隐藏方式更符合常规交互,用户切换回「Select period」时可重新看到结束选项;若确需删除元素,第二种方式提供了删除后恢复的逻辑,但复杂度更高。

内容的提问来源于stack exchange,提问作者Justin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 13:10:49