前端頁面中各種常用資料回顯、預設被選中問題——JS學習筆錄
阿新 • • 發佈:2019-02-01
最近常常遇到各種複選框、單選框、下拉框的預設被選中的問題,開始也是絞盡腦汁的想辦法,今天寫一篇學習總結的博文來寫一下學習總結。
單選框(radio)預設被選中:
一、jstl技術進行回顯
<input type="radio" name="sex"
<f:if test="${c.sex=='男' }">checked="checked"</f:if> value="男" />男
<input type="radio" name="sex" <f:if test="${c.sex=='女' }">checked="checked"</f:if> value="女" />女
首先是通過jstl表示式來賦值,同時用分支判斷來判斷值,成立則執行‘checked=“checked”’選中當前radio。
注意:頁面要主動引入jstl標籤庫哦。<%
@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="f"%>
二、下面是Ajax的方法回顯
$.post("update.do", $("form").serialize(), function(res) { for(var i in res){ $("input[name='sex']").val(res[i].sex).prop("checked", true); } }, "json");
<input type="radio" name="sex" value="男" />男
<input type="radio" name="sex" value="女"/>女
注意:返回值中的集合物件中必須 有sex這個值。
複選框(ckeckbox)預設被選中:
設計思路:
- 通過ajax載入頁面資料後將資料存入隱藏域中
- 用jQuery讀取隱藏域的資料存入變數中
- 遍歷複選框,判斷複選框的值是否與變數值一致
- 一致的話便通過prop或attr來選中複選框
這個複選框的根據資料預設被選中就不演示了。
複選框永久預設被選中的實現程式碼:
<input name="checkbox" type="checkbox" value="checkbox" checked="checked" />
下拉框(select)資料回顯,預設被選中:
設計思路:
- 通過ajax載入頁面資料後將資料存入隱藏域中
- 用jQuery讀取隱藏域的資料存入變數中
- 遍歷下拉框,判斷下拉框的值或內容是否與變數值一致
- 一致的話便通過prop或attr來設定當前的option為選中
實現程式碼:
$.ajax({
method : "get",
url : "QueryAllDomainServlet",
dataType : "json",
async : false,
success : function(res) {
var select = $("#select");
for (var i = 0; i < res.length; i++) {
var option = $('<option value="'+res[i].zid+'">'
+ res[i].zname + '</option>');
select.append(option);
}
},
error : function() {
alert("下拉框載入異常!");
}
});
<input type="hidden" value="" id="optionT" />
<select id="select">
<option value="0">--請選擇--</option>
<option value="1">張三</option>
<!-- 通過ajax載入 -->
</select>
核心程式碼:
/***下拉框預設被選中(資料回顯)*****/
$("#select").children("option").each(function(){
if($(this).val() == $("#optionT").val()){
$(this).attr("selected",true);
}
});
下面是一個最簡潔的寫法:
$("#select").val(res[i].zid);//直接在下拉選單中追加值即可。
以上就是本人總結的預設被選中的方法。
歡迎批評建議,感謝採納。
H080701-0 微信公眾號,有興趣關注一下謝謝支援。