javascript - 如何清空关注复选框更改的切换文本框?

标签 javascript jquery jquery-ui

我有这个https://jsfiddle.net/5ep34nj8/5/切换功能效果很好。

此外,我想在未选中复选框时清空切换的文本框。我已经搜索了大约一个小时,但没有任何结果。

我试图将焦点移到文本框上,但它并没有改变任何事情。文本框不会像现在这样自行清空。

function toggleOtherLanguagesTextBox() {
  var effect = 'slide';
  $("#otherLanguagesPartial").toggle(effect, 0);
}

$("#otherLanguagesPartial").toggle(false);
$("#other").click(function() {
  toggleOtherLanguagesTextBox();

  if (!$("#other").is(":checked")) {
    $("#otherLanguages").focus(false);
    $("#otherLanguagesPartial").val("");
  }

  if ($("#other").is(":checked"))
    $("#otherLanguages").focus();
});
body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
  color: #fff;
}
<head>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.css" />
</head>

<body>
  <input type="checkbox" id="other" name="languages[]" value="Other" />
  <label for="other">Other</label>
  <div id="otherLanguagesPartial">
    <label for="otherLanguages">Please Specify:</label>
    <input type="text" id="otherLanguages" name="languages[]">
  </div>
</body>

<footer>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
</footer>

最佳答案

当前您正在尝试清空 div 而不是 input。因此,请在您的点击方法中使用 $("#otherLanguages").val(""); 而不是 $("#otherLanguagesPartial").val(""); .

请参阅下面的代码段:

function toggleOtherLanguagesTextBox() {
  var effect = 'slide';
  $("#otherLanguagesPartial").toggle(effect, 0);
}

$("#otherLanguagesPartial").toggle(false);
$("#other").click(function() {
  toggleOtherLanguagesTextBox();

  if (!$("#other").is(":checked")) {
    $("#otherLanguages").focus(false);
    $("#otherLanguages").val("");
  }

  if ($("#other").is(":checked"))
    $("#otherLanguages").focus();
});
body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
  color: #fff;
}
<head>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.css" />
</head>

<body>
  <input type="checkbox" id="other" name="languages[]" value="Other" />
  <label for="other">Other</label>
  <div id="otherLanguagesPartial">
    <label for="otherLanguages">Please Specify:</label>
    <input type="text" id="otherLanguages" name="languages[]">
  </div>
</body>

<footer>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
</footer>

关于javascript - 如何清空关注复选框更改的切换文本框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55728230/

相关文章:

javascript - 当相应的页面 div 可见时,使用 jQuery 将一类事件添加到导航项?

javascript - 如何从 lambda 函数返回字符串?

javascript - 如何在搜索栏下添加来自数据库的自动完成建议?

javascript - 更新 jquery 中的 div id,以便脚本只能运行一次

javascript - jquery 滚动在我的网站上不起作用

javascript - Extjs 更改日期选择器天数

javascript - Chrome 新标签自动对焦

javascript - 随着通过 jQuery UI .draggable() 拖动元素,逐渐降低不透明度

javascript - 在指定时间临时更改 HTML 中的占位符

javascript - 如何将日期选择器包装在新的 div 中?