【easyui】combo是否选中以及非空判断(可判断手动输入情况)

大家通常会通过$('#' + comboboxId).combobox('getValue') 方式来判断是否选中以及非空,但这种方式有个漏洞:就是如果手动在combo中输入值,则也是可以通过getValue获取到值的,但其实这个值并不存在于下拉列表中,那么这时通过getValue获取的值来判断非空就是错误的。

看下图随便输入的值

那么如何解决手动输入这种错误的情况呢? 看看下面我总结的几个方法吧。

分别获取value 、text,然后判断value 、text是否相等,如果相等则说明没有从列表中选择。为什么相等就是错误的?因为正常情况下,value和text是不会相同的。当然大家可以根据实际情况改写

 combobox

//验证combobox是否被选择,本验证支持可手动输入过滤列表的情况
//true - 已被选择 , false - 未被选择。
function isComboBoxSelected(comboboxId) {
	var comboboxValue = $.trim($('#' + comboboxId).combobox('getValue'));
	var comboboxText = $.trim($('#' + comboboxId).combobox('getText'));
	
	if (comboboxValue != null && comboboxValue != '' && comboboxText != '' && comboboxText != null) {
		if (comboboxValue == comboboxText) {
			return false;
		}
	} else {
		return false;
	}

	return true;
}

ComboTree

//验证ComboTree是否被选择, 本验证支持可手动输入过滤列表的情况
//true - 已被选择 , false - 未被选择。
function isComboTreeSelected(combotreeId) {
	var combotreeValue = $.trim($('#' + combotreeId).combotree('getValue'));//value
	var combotreeText = $.trim($('#' + combotreeId).combotree('getText'));//text
	
	if (combotreeValue != null && combotreeValue != '' && combotreeText != null && combotreeText != '') {
		var node = $('#' + combotreeId).combotree('tree').tree('find', combotreeValue); //根据选中的节点id获取节点对象
		
		if(node == null){//选中节点的id不存在
			return false;
		}
		
		if (node.text != combotreeText) { //选中的节点对象的文本与当前输入的文本不等,说明未选中列表中的单位
			return false;
		}

	} else {

		return false;
	}

	return true;
}

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值