jquery val() 获取不到值的问题排查

表单校验用jquery-validation 实现,基本功能很快实现。 在测试时发现自定义的一个比较开始结束日期的校验不起作用。

  var $begin = $(param).val();
        var reg = new RegExp('-', 'g');
        $begin = $begin.replace(reg, '/');//正则替换
        var end = value.replace(reg, '/');
        if (new Date(parseInt(Date.parse($begin), 10)) > new Date(parseInt(Date.parse(end), 10))) {
            return false;
        } else {
            return true;
        }
    }, "结束日期必须大于开始日期");

问题出在begin值获取的是空值? 这也能错吗?检查了一遍字母的大小写,没有发现问题。F12 查找input 的Id值,发现了2个,原来有modal打开,上面存在一样的Id,修改名字后问题解决。

基本上遇到类似看起来完全不成立的错误,可以先从字母大小写、是否重名情况存在来排查看看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
layui中的form模块提供了一个val函数来获取表单元素的。但有时候我们可能会遇到无法获取到数据的情况。这可能是由于一下几个原因: 1. 表单元素未设置name属性:form.val函数是通过表单元素的name属性来获取的,如果某个表单元素没有设置name属性,则无法通过val函数获取到该元素的。需要确保所有需要获取的表单元素都设置了name属性。 2. 表单元素动态添加:如果表单元素是通过动态添加方式生成的,那么在调用form.val函数之前,需要确保该表单元素已经生成并添加到DOM树中。如果元素还没有生成,调用form.val函数是无法获取的。 3. 表单元素未渲染完成:若在表单元素渲染完成之前调用form.val函数,可能导致无法正确获取。在使用layui时,可以使用form.render函数来手动渲染表单元素。确保在调用form.val函数之前,表单元素已经渲染完成。 4. 表单元素不属于当前form:如果表单元素不属于当前的form,那么val函数是无法获取到该元素的的。需要确保表单元素是包含在所操作的form中。 5. 其他因素:还有一些其他因素可能导致获取不到数据,比如网络延迟等。此时可以使用浏览器开发者工具来检查请求是否成功,以及返回的数据是否正确。 总结起来,无法获取到数据可能是由于表单元素未设置name属性、动态添加元素、未渲染完成或者不属于当前form等原因导致的。需要仔细检查以上几点,确保表单元素正确设置并渲染完成,才能正确获取到数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值