jQuery空值判断赋值问题:customernamemulti为空时设Applying_credit_value为1000
问题修复与实现方案
代码问题排查
- 属性选择器语法不完整:
$('[id^="customernamemulti')和$('[id^="Applying_credit_value')都缺少闭合的"],导致选择器失效 - 变量名拼写错误:
else if分支里的customernamemult应为customernamemulti,少写了末尾的i - 全局选择元素导致逻辑错误:循环中直接选取所有匹配前缀的字段,会把所有行的
Applying_credit_value设为同一个值,没有针对单行对应字段操作
修正后的核心代码
var tableOutstandingBalanceRowCount = $('#Insurer_information tr').length - 2; for (var i = 0; i < tableOutstandingBalanceRowCount; i++) { // 定位当前行的两个字段,避免全局选择 var currentRow = $('#Insurer_information tr').eq(i + 1); var customernamemulti = currentRow.find('[id^="customernamemulti"]'); var applyingCreditValue = currentRow.find('[id^="Applying_credit_value"]'); // 用trim()过滤纯空格的情况,判断是否为空 if (!customernamemulti.val().trim().length) { applyingCreditValue.val(1000); } else { applyingCreditValue.val(2000); } }
必填验证实现
方案1:HTML原生验证
直接给所有customernamemulti输入框添加required属性,浏览器会自动拦截空值提交:
<input type="text" id="customernamemulti_xxx" required>
方案2:JS自定义验证(更灵活)
绑定提交事件,手动检查所有字段:
// 替换成你的提交按钮选择器 $('#submit-btn').click(function(e) { var hasEmptyField = false; $('[id^="customernamemulti"]').each(function() { if (!$(this).val().trim().length) { hasEmptyField = true; alert('客户名称字段不能为空'); $(this).focus(); return false; // 停止遍历 } }); if (hasEmptyField) { e.preventDefault(); // 阻止表单提交 } });
内容的提问来源于stack exchange,提问作者Gajka42
相关产品推荐
相关产品推荐

