HTML输入框禁用时仍保留值,如何通过JQuery实现禁用时自动清空数值
方案说明
实现可行性
- 纯HTML无法实现该需求:HTML仅为标记语言,仅能定义静态的页面结构和基础表单属性,不具备监听用户交互、动态修改表单数值的逻辑能力,必须配合JavaScript实现。
- 你当前使用jQuery可以完全实现该需求,代码不生效是语法错误导致的。
问题根因
你的代码中清空数值的写法不符合jQuery的语法规范:
错误写法:autoRefresh.find('input,select,radio').val()= null ;
jQuery的val()方法在赋值时,需要将目标值作为参数传入方法括号内,不能直接对val()的返回值做赋值操作。
修正后代码
你只需要修改对应分支的清空逻辑即可,参考代码如下:
$("input[name=live_stream]").on('click', function() { const autoRefresh = $('#autorefresh'); if ($(this).val() === "No") { autoRefresh.show(); autoRefresh.find('input,select,radio').prop('disabled', false); } else { const targetFields = autoRefresh.find('input,select,radio'); targetFields.prop('disabled', true); // 清空输入类字段值 targetFields.val(''); // 额外处理单选、复选框的选中状态(如果有这类控件可保留,没有可以删除) targetFields.filter('[type=radio],[type=checkbox]').prop('checked', false); // 可选:隐藏禁用的区块,符合常规表单交互逻辑 autoRefresh.hide(); } });
内容的提问来源于stack exchange,提问作者Geographos
相关产品推荐
相关产品推荐

