簡單描述:今天看我同事提交的代碼,發現一個東西,讓我有了一點小想法,是這樣的,他利用一個‘’無關緊要‘’的標簽屬性,(哈哈哈,也不能說人家是無關緊要的屬性了,暫時是無關緊要的屬性哈,不管了 我要開寫了),嗯emm,一個無關緊要的屬性,為這個屬性拼了好大一串字符串,其實就是后臺傳過來的list里的各種字段值,然后在js中分割字符串,獲取到這些值,給隱藏域賦值,頁面的表單提交被觸發后,這些值就被傳遞到了后臺,做一些業務邏輯的操作。
個人:我一般的話,基本都是用input隱藏域,存放數據,很少拼字符串,原因么,你們可能也體會到,拼接處理用的那些個單引號雙引號加號,還有轉義符號左斜杠右斜杠,真的是很煩安安安安人,不過今天 讓我改變了我的看法,list中有很多的字段值,我們可以把要使用的,字段都取出來放到無關緊要的一些標簽屬性里,然后在js中分割字符串,取出這些值,要用到的給后臺。
代碼:
<div class="col-md-6">
<select id="parent" name="parent" class="form-control js-example-basic-single" placeholder="請選擇">
<option th:each="xxx : ${xxxOrgs}" th:value="${xxx.xxxId} + ',' + ${xxx.xxxCode} + ',' + ${xxx.xxxLevel}" th:text="${xxx.xxxName}" xmlns:th="http://www.w3.org/1999/xhtml"></option>
</select>
<input type="hidden" value="" name="xxxParentId" id="xxxParentId"/>
<input type="hidden" value="" name="xxxParentCode" id="xxxParentCode"/>
<input type="hidden" value="" name="xxxLevel" id="xxxLevel"/>
</div>
js代碼:
$("#parent").on("change", function () {
debugger;
var seled = $(this).val();
if (seled != null) {
var strs = seled.split(","); //根據,分割拼接的字符串
$("#xxxParentId").val(strs[0]);
$("#xxxParentCode").val(strs[1]);
$("#xxxLevel").val(Number(strs[2]) + 1); //把str[2]的數字字符串通過Number函數轉換為數字,做加法操作
} else {
$("#xxxParentId").val("");
$("#xxxParentCode").val("");
$("#xxxLevel").val(1);
}
});
總結:怎么說呢,感覺還是沒說到點上,反正自己是get到了,這種拼接字符串的好處,我在開發的時候,有時候會糾結該怎么傳遞某個值(不想用隱藏域),這種拼字符串就是我想要的那種合適的方式。