如何用jQuery判断空输入框及获取单选框选中值
1. 如何使用jQuery查找空输入框的值?
要找出页面上的空输入框并获取它们的信息,你可以用jQuery的选择器结合过滤方法来实现,这里有两种实用方式:
方式一:筛选所有值为空的表单控件
如果你想覆盖所有类型的表单输入(比如文本框、文本域、下拉框等),可以用:input选择器配合filter方法:// 筛选出所有值为空(或仅含空格)的输入元素 const emptyInputs = $(':input').filter(function() { return $.trim($(this).val()) === ''; }); // 遍历空输入框,获取它们的相关信息 emptyInputs.each(function() { console.log(`空输入框名称:${$(this).attr('name')}`); console.log(`空输入框当前值:${$(this).val()}`); // 结果是空字符串 });方式二:针对特定类型的输入框
如果你只需要查找文本输入框,可以缩小选择范围:const emptyTextInputs = $('input[type="text"]').filter(function() { return $.trim($(this).val()) === ''; });把
input[type="text"]换成你需要的类型(比如textarea、input[type="email"])即可。
2. 修复单选框的取值逻辑问题
先说说你现有代码的几个小问题:
- 你只给
.forgot_pass_enable绑定了change事件,点击禁用按钮时完全不会触发这个事件; - 判断
val().length > 0没有意义——单选框的value属性本来就存在,不管是否被选中; - 代码里还有个拼写错误:
console.log(statusasdad);应该是console.log(status);
最简单的解决方法是监听整个单选框组的change事件,因为同name的单选框是一组,点击任何一个都会触发状态变化:
$('body').on('change', 'input[name="forgot_pass"]', function() { // 当前被选中的单选框就是$(this),直接取它的值 let status = $(this).val(); // 可选:把字符串转成数字类型 status = parseInt(status, 10); console.log(status); // 点击启用输出1,点击禁用输出0 });
如果你坚持想用类来区分处理,也可以这么写:
$('body').on('change', '.forgot_pass_enable, .forgot_pass_disable', function() { let status; if ($(this).hasClass('forgot_pass_enable')) { status = 1; } else { status = 0; } console.log(status); });
不过第一种方法更简洁,也更符合单选框的使用逻辑~
内容的提问来源于stack exchange,提问作者Salman Iqbal
相关产品推荐
相关产品推荐

