jquery - 清除未选中框上的相应输入?
问题描述
寻找一种更改此脚本的方法,以便我可以在多个复选框/输入上使用它,而无需为每个复选框/输入正确设置一个单独的函数。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<div class="child_div_1">MULTI SWITCH
<hr>
<div>
<input type="checkbox" class="apple-switch reveal" id="swm_box">
<span class="qntylabel">SWM 30</span>
<div class="part">
<input type="text" name="swm" id="swm" class="qnty" placeholder="QTY" pattern="\d*" value="test1"/>
</div>
</div>
<div>
<input type="checkbox" class="apple-switch reveal" id="rc66_box">
<span class="qntylabel">RC 66</span>
<div class="part">
<input type="text" name="rc66" id="rc66" class="qnty" placeholder="QTY" pattern="\d*" value="test2"/>
</div>
</div>
</div>
<script>
$(function(){
$("#swm_box").click(function(){
if(!$(this).is(":checked")){ //checks if the checkbox/this is selected or not
$("#swm").val(""); //empty the input value
} else { } //nothing
});
});
</script>
目前适用于第一次检查/输入以清除值。
但是它不适用于第二个,因为它是特定于 id 的。
解决方案
抱歉,我没看到你想要 jQuery。无论如何,这是一个javascript解决方案。基本上forEach
在包含文本输入名称的数组上使用。我确信 jQuery 可以更短地做到这一点。
["swm","rc66"].forEach(
el=>document.querySelector("#"+el+"_box").onchange=e=>{
if(e.target.checked) {
document.querySelector("#"+el).value="";
}
}
);
<input type="checkbox" id="swm_box"><br>
<input type="text" id="swm" value="test1"/><br>
<input type="checkbox" id="rc66_box"><br>
<input type="text" id="rc66" value="test2"/>
推荐阅读
- graphql - Apollo Server:如何根据回调发送响应?
- vba - VBA excel从文件夹中获取文件名
- python - Bazel:如何在测试前运行 py_binary 以生成输入文件
- mysql - 将多个订单项合并为一个
- node.js - 如何在 NestJS 服务器上动态更改 TypeORM 配置?
- hazelcast - setStoreByValueJCache + Hazelcast 接口不起作用
- reactjs - 无法在全新的 create-react-app 上运行 npm install
- typescript - 打字稿:防止分配具有比目标界面中指定的更多属性的对象
- git - 自动将两个文件合并在一起而不发生冲突的最佳方法是什么?
- rhandsontable - 使用 rhandsontable 时无法将焦点设置到 shinyBS