jquery.tagsinput.js實(shí)現(xiàn)記錄checkbox勾選的順序
業(yè)務(wù)需求:可以根據(jù)checkbox的先后勾選傳遞有順序的值讓后臺(tái)接收,決定用tagsinput顯示checkbox的先后勾選順序,并實(shí)時(shí)響應(yīng)checkbox的勾選狀態(tài)
思路:checkbox的值存在一個(gè)數(shù)組A,新創(chuàng)建一個(gè)數(shù)組B,如果選中一個(gè),B push一個(gè)值,取消一個(gè),remove一個(gè)值,因?yàn)閿?shù)組是有序的,就做到響應(yīng)checkbox的勾選順序
效果:

代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Tagsinput Checkbox</title>
<link rel="stylesheet" type="text/css" href="jquery.tagsinput.css" >
</head>
<body>
checkbox: <input type="checkbox" value="0" name="fruit" οnclick="radioHandle(this.value)" />Apple
<input type="checkbox" value="1" name="fruit" οnclick="radioHandle(this.value)" />Banana
<input type="checkbox" value="2" name="fruit" οnclick="radioHandle(this.value)" />Pear
<input type="checkbox" value="3" name="fruit" οnclick="radioHandle(this.value)" />Orange
<br><br>
<input type="text" id="fruit-tags" name="fruit-tags" >
<input type="text" id="fruitChecked">
<script src="jquery.min.js" ></script>
<script src="jquery.tagsinput.js" ></script>
<script type="text/javascript">
var fruitValue = new Array();
var fruitName = ['Apple','Banana','Pear','Orange'];
Array.prototype.removeByValue = function(val) {
for(var i=0; i<this.length; i++) {
if(this[i] == val) {
this.splice(i, 1);
break;
}
}
};
$('#fruit-tags').tagsInput({
interactive: false,
removeWithBackspace: false,
onRemoveTag: function(value){
//重點(diǎn) 通過(guò)值獲得數(shù)組的索引
//刪除 checkbox不勾選 數(shù)組remove值 顯示改變
var index = fruitName.indexOf(value);
$("input:checkbox[name=fruit][value="+index+"]").prop("checked",false);
fruitValue.removeByValue(index);
$('#fruitChecked').val(fruitValue.toString());
}
});
function radioHandle(value){
// --- 選中 push--
if($("input:checkbox[name=fruit][value="+value+"]").is(':checked')){
if($('#fruitChecked').val().indexOf(value) == -1){
fruitValue.push(value);
$('#fruit-tags').addTag(fruitName[parseInt(value)]);
}
}else{
if($('#fruitChecked').val().indexOf(value) > -1){
fruitValue.removeByValue(value);
$('#fruit-tags').removeTag(fruitName[parseInt(value)]);
}
}
$('#fruitChecked').val(fruitValue.toString());
}
</script>
</body>
</html>
資源:Demo
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
jQuery根據(jù)用戶電腦是mac還是pc加載對(duì)應(yīng)樣式的方法
這篇文章主要介紹了jQuery根據(jù)用戶電腦是mac還是pc加載對(duì)應(yīng)樣式的方法,涉及jQuery針對(duì)客戶端信息的獲取及樣式的調(diào)用技巧,需要的朋友可以參考下2015-06-06
實(shí)例詳解jQuery表單驗(yàn)證插件validate
validate插件是一個(gè)基于jquery的表單驗(yàn)證插件了里面有許多的常用的一些驗(yàn)證方法我們可以直接調(diào)用,具體的我們一起來(lái)看看2016-01-01
基于jquery實(shí)現(xiàn)鼠標(biāo)滾輪驅(qū)動(dòng)的圖片切換效果
這篇文章主要介紹了基于jquery實(shí)現(xiàn)鼠標(biāo)滾輪驅(qū)動(dòng)的圖片切換效果,操作簡(jiǎn)單,適合用在產(chǎn)片展示網(wǎng)站中,需要的朋友可以參考下2015-10-10
jquery實(shí)現(xiàn)左右滑動(dòng)菜單效果代碼
這篇文章主要介紹了jquery實(shí)現(xiàn)左右滑動(dòng)菜單效果代碼,涉及jquery鼠標(biāo)事件及頁(yè)面元素動(dòng)態(tài)變換的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08
jQuery循環(huán)遍歷子節(jié)點(diǎn)并獲取值的方法
這篇文章主要介紹了jQuery循環(huán)遍歷子節(jié)點(diǎn)并獲取值的方法,涉及jQuery節(jié)點(diǎn)的遍歷與屬性操作相關(guān)技巧,需要的朋友可以參考下2016-04-04
jQuery 1.5最新版本的改進(jìn)細(xì)節(jié)分析
jQuery 1.5 beta1出來(lái)了,從學(xué)習(xí)跟進(jìn)上來(lái)說(shuō),這一次已經(jīng)比較晚了(我竟然不知道1.5什么時(shí)候出的alpha,就這么beta了)。2011-01-01
遮罩層點(diǎn)擊按鈕彈出并且具有拖動(dòng)和關(guān)閉效果(兩種方法)
實(shí)現(xiàn)點(diǎn)擊按鈕彈出遮罩層,點(diǎn)擊按鈕可以隨意拖動(dòng)和關(guān)閉。接下來(lái),通過(guò)本篇文章給大家介紹遮罩層點(diǎn)擊按鈕彈出并且具有拖動(dòng)和關(guān)閉效果,需要的朋友可以參考下2015-08-08
zTree節(jié)點(diǎn)文字過(guò)多的處理方法
這篇文章主要為大家詳細(xì)介紹了zTree節(jié)點(diǎn)文字過(guò)多的處理方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
基于jQuery實(shí)現(xiàn)簡(jiǎn)單人工智能聊天室
這篇文章主要為大家詳細(xì)介紹了基于jQuery實(shí)現(xiàn)簡(jiǎn)單人工智能聊天室的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02

