easyUI对combobox设置value和text

参考自:点击打开链接

 

 

 

1.出现的问题

 

当再编辑教师,进行教师信息回显的时候。

 

对于上面这个情况,我期望的时候,传入后台的数据,是专业所在的编号id,而不是“软件工程”这个名字。

但是如果不对教师进行更改院系和专业,那么传入后台的就是名字,而不是id。

 

2.问题分析

下面贴上代码:

easyUI的代码:

 

							
$('#mname').combobox({   
								
     required:true, 
								
     editable:false,
								
     valueField:'mno',    
								
     textField:'mname',

     value:t.mname//t是后台已经查询出当前要回显的教师对象。 
});

 

前台所在的代码

 

<form  id='teacherForm' method="post">
	
			
		<div  style="width:100%;margin-top:3px;">
			<font size="2">请选择所在院系:</font> 
			<!-- 专业所在院系:下拉框,用户选择 -->
			<select id="cname" name="cno" style="width:100%;max-width:150px;"></select>
		</div>
		<div  style="width:100%;margin-top:3px;">
			<font size="2">请选择所在专业:</font> 
			<!-- 专业所在院系:下拉框,用户选择 -->
			<select id="mname" name="mno" style="width:100%;max-width:150px;"></select>
		</div>
	</form>


我为什么把专业所在select的id设成mname,name设成mno,因为,我在easyUI里面设置了valueField代表mno,textField代表mname。

 

因为展示给用户的要是文字mname,而不能是编号mno。

所以,这个select,当用户前台选择 textField(mname), 而后台提交的是valueField( mno) 个人猜测

 

3.问题出现的原因

所以,问题出现的原因是因为:easyUI的代码中设置了:

   value:t.mname//t是后台已经查询出当前要回显的教师对象。 

 

导致,用户如果不重新进行院系的选择,提交到后台的数据就是 t.mname; 是一串汉字。

 

 

4.解决的办法

只需要将 valueFiled和textField到设置一下就可以了

对valueFiled设置成mno,

对textField设置成mname;

所以,easyUI修改之后的代码如下:

 

$('#mname').combobox({   
								
     required:true, 
								
     editable:false,
								
     valueField:'mno',    
								
     textField:'mname',
							
});  
							
$('#mname').combobox('setValue',t.mno);//一定要先value后text,否则text与value值会相同全为value值  
							
$('#mname').combobox('setText', t.mname); 


注意三个的顺序!

 

这样改好之后,所有的功能就都ok了。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章