easyui中datebox、combobox、validatebox等动态设置reuqired属性值丢失

本文介绍了在easyui中遇到datebox、combobox等组件动态设置required属性后值丢失的问题及解决方案。通过直接设置组件的option,并结合validatebox的验证功能,可以成功实现动态设置并保持原有值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题

easyui的时间控件easyui-datebox有required属性可以设置必填或可空,当我们需要动态设置required时,我们会像这样设置:

$('#id').datebox({required:true});

这样设置可以达到必填的效果,但是当的datebox有值时,这个方法会初始化datebox,导致框内值丢失。
查询了官网文档,datebox没有相应方法提供。

解决办法

由于没有直接的api进行设置,我们可以直接设置datebox的option,使用一下api
在这里插入图片描述
于是我们这样写:

$(‘#id’).datebox('options').required = true;

这个时候我们只设置了当前浅表属性,文档中有一句
在这里插入图片描述
说明combo的方法也适用于datebox,而且方法依赖于textbox和validatebox。这时我们需要在datebox的validate里设置其约束option,才能成功设置,代码如下:

$('#id').datebox('textbox').validatebox('options').required = true;

这时虽然已经设置了required属性,但我们还需动态调用其验证,代码如下:

$('#id').datebox('validate');

这样可以成功动态设置required。最终所有代码是:

$('#id').datebox('options').required = true;
$('#id').datebox('textbox').validatebox('options').required = true;
$('#id').datebox('validate');

总结

所有easyui的input中最后约束都会是validatebox。其他的input设置都可参考此方法。
以下是其他input修改reuqired:

  • combobox
$('#id').combobox('options').required = true;
$('#id').combobox('textbox').validatebox('options').required = true;
$('#id').combobox('validate');
  • validatebox
$('#id').validatebox('options').required = true;
$('#id').validatebox('validate');
  • timespinner
$('#id').timespinner('options').required = true;
$('#id').timespinner('textbox').validatebox('options').required = true;
$('#id').timespinner('validate');
  • numberbox
$('#id').numberbox('options').required = true;
$('#id').numberbox('textbox').validatebox('options').required = true;
 $('#id').numberbox('validate');

等等…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值