多选框,单选框,下拉框这三个东西在项目中一般都会用到:
1.下拉框使用场景:常常都是后台传递数据到前台,前台拿到值后要让下拉框对应的这个值得选项选中:
我的思路是:使用一个隐藏域去拿到后台传来的值,然后遍历下拉框的option的值,跟这个后台的值相对比,如果对比上了就选中。
具体代码:
<td>
<input type="hidden" id="netFlagvalue" name="netFlagvalue" value="${itsm_ci.netFlag}"/>
<select name="netFlag" id="netFlag">
<option value="">请选择</option>
<option value="O">外网</option>
<option value="I">内网</option>
<option value="Z">专网</option>
</select>
</td>
JS:
/*翻译网络标识*/
function formattNetFlag()
{
var netFlagvalue=$("#netFlagvalue").val();
var all_options = document.getElementById("netFlag").options;
for (i=0; i<all_options.length; i++){
if (all_options[i].value == netFlagvalue) // 根据option标签的VALUE来进行判断 测试的代码这里是两个等号
{
all_options[i].selected = true; //相等则选上
}
}
}
2.单选框的处理:思路跟下拉框是一样的:遍历每个单选框,如果单选框的值与后台传来的值一致,则让其选上
<td id="igS">
<input type="radio" name="isgraphics" value="1" />是<input type="Radio" name="isgraphics" value="0" checked="checked"/>否
<input type="hidden" id="isgraphicsSelect" value="${category.isgraphics}"></td>
</td>
JS:
$("#igS :radio").each(function(){ //选上当前的是否需要显示图标的按钮
if($(this).val()==isgraphics)
{
$(this).attr("checked",true);
}
});
3.多选框的处理:思路其实也是一样的:但是处理方法不同,因为多选框的数据一般存在数据库是以逗号隔开的字符串,所以通常来说需要先解析打包成数组,然后遍历多选框,如果多选框的值在数组内则让其选上:所以最关键的一点是:怎么判断多选框的值在数组中:使用$.inArray($(this).val(), arrays) 这个api即可:
上代码:
<td colspan="3" id="SystemOs"> <input type="checkbox" name="os" value="windows95"/>windows95
<input type="checkbox" name="os" value="windows98"/>windows98
<input type="checkbox" name="os" value="windows2000"/>windows2000
<input type="checkbox" name="os" value="windows2003"/>windows2003
<input type="checkbox" name="os" value="windows xp"/>windows xp
<input type="checkbox" name="os" value="windows vista"/>windows vista
<input type="checkbox" name="os" value="win7"/>win7
<input type="checkbox" name="os" value="linux"/>linux
<input type="checkbox" name="os" value="Unix"/>Unix
<input type="checkbox" name="os" value="Solaris"/>Solaris
<input type="hidden" id="allos" value="${itsmSoftMedia.os}">
</td>
JS:
//这里让多选框选上值
var arrays= new Array();
var allos=$("#allos").val();
arrays=allos.split(",");
$("#SystemOs :checkbox").each(function(){
if($.inArray($(this).val(), arrays)!=-1)
{
$(this).attr("checked",true);
}
});
jquery1.7以后使用
<input type="checkbox" id="ss">
alert($("#ss").attr("checked")); -------------------------------undefined
应该使用$("#ss").prop("checked") ------------------------去获得是否选上的状态。