導航:首頁 > 編程語言 > js多選

js多選

發布時間:2025-04-08 17:14:40

『壹』 Extjs怎麼實現下拉框多選

|

1、擴展js類庫,在項目中建立一個 js文件,命名為:xxx.js 其代碼

if('function'!==typeofRegExp.escape)
{
RegExp.escape=function(s)
{
if('string'!==typeofs)
{
returns;
}
returns.replace(/([.*+?^=!:${}()|[]/\])/g,'\$1');
};
}

Ext.ns('Ext.form');

Ext.form.MultiSelect=Ext.extend(Ext.form.ComboBox,
{
checkField:'checked',
multi:true,
separator:',',
initComponent:function()
{
if(!this.tpl)
{
this.tpl='<tplfor=".">'+'<divclass="x-combo-list-item">'
+'<imgsrc="'+Ext.BLANK_IMAGE_URL+'"'
+'class="ux-MultiSelect-iconux-MultiSelect-icon-'
+'{[values.'+this.checkField+'?"checked":"unchecked"'
+']}">'
+'{[values.'+this.displayField+']}'
+'</div>'
+'</tpl>';
}

Ext.form.MultiSelect.superclass.initComponent.apply(this,arguments);

this.on(
{
scope:this,
beforequery:this.onBeforeQuery,
blur:this.onRealBlur
});

this.onLoad=this.onLoad.createSequence(function()
{
if(this.el)
{
varv=this.el.dom.value;
this.el.dom.value='';
this.el.dom.value=v;
}
});
},
initEvents:function()
{
Ext.form.MultiSelect.superclass.initEvents.apply(this,arguments);
this.keyNav.tab=false;
},
beforeBlur:function()
{
},
postBlur:function()
{
},

clearValue:function()
{
this.value='';
this.setRawValue(this.value);
this.store.clearFilter();
this.store.each(function(r)
{
r.set(this.checkField,false);
},this);
if(this.hiddenField)
{
this.hiddenField.value='';
}
this.applyEmptyText();
},
getCheckedDisplay:function()
{
varre=newRegExp(this.separator,"g");
returnthis.getCheckedValue(this.displayField).replace(re,this.separator+'');
},
getCheckedValue:function(field)
{
field=field||this.valueField;
varc=[];
varsnapshot=this.store.snapshot||this.store.data;
snapshot.each(function(r)
{
if(r.get(this.checkField))
{
c.push(r.get(field));
}
},this);

returnc.join(this.separator);
},
onBeforeQuery:function(qe)
{
qe.query=qe.query.replace(newRegExp(RegExp.escape(this.getCheckedDisplay())+'['+this.separator+']*'),'');
},
onRealBlur:function()
{
this.list.hide();
varrv=this.getRawValue();
varrva=rv.split(newRegExp(RegExp.escape(this.separator)+'*'));
varva=[];
varsnapshot=this.store.snapshot||this.store.data;

Ext.each(rva,function(v)
{
snapshot.each(function(r)
{
if(v===r.get(this.displayField))
{
va.push(r.get(this.valueField));
}
},this);
},this);
this.setValue(va.join(this.separator));
this.store.clearFilter();
},
onSelect:function(record,index)
{
if(this.fireEvent('beforeselect',this,record,index)!==false)
{
record.set(this.checkField,!record.get(this.checkField));

if(this.store.isFiltered())
{
this.doQuery(this.allQuery);
}

if(this.multi)
{
if(record.get("key")=="---"&&record.get(this.checkField))
{
this.setValue("---");
}
else
{
this.setValue(this.getCheckedValue());
}
}
else
{
this.clearValue();
this.value=record.get(this.valueField);
this.setRawValue(record.get(this.displayField));
this.list.hide();
}

this.fireEvent('select',this,record,index);
}
},
setValue:function(v)
{
if(v)
{
v=''+v;
if(this.valueField)
{
this.store.clearFilter();
this.store.each(function(r)
{
varchecked=!(!v.match('(^|'+this.separator+')'
+RegExp.escape(r.get(this.valueField))
+'('+this.separator+'|$)'));
r.set(this.checkField,checked);
},this);
this.value=this.getCheckedValue();
this.setRawValue(this.getCheckedDisplay());
if(this.hiddenField)
{
this.hiddenField.value=this.value;
}
}
else
{
this.value=v;
this.setRawValue(v);
if(this.hiddenField)
{
this.hiddenField.value=v;
}
}
if(this.el)
{
this.el.removeClass(this.emptyClass);
}
}
else
{
this.clearValue();
}
},
selectAll:function()
{
this.store.each(function(record)
{
record.set(this.checkField,true);
},this);
this.doQuery(this.allQuery);
this.setValue(this.getCheckedValue());
},
deselectAll:function()
{
this.clearValue();
}
});
Ext.reg('multiSelect',Ext.form.MultiSelect);

2、在ext-all.css文件最後,加入css樣式

.ux-MultiSelect-icon{width:16px;height:16px;float:left;background-position:-1px-1px!important;background-repeat:no-repeat!important;}
.ux-MultiSelect-icon-checked{background:transparenturl(../images/default/menu/checked.gif);}
.ux-MultiSelect-icon-unchecked{background:transparenturl(../images/default/menu/unchecked.gif);}

3、使用

varDepartUserStore=newExt.data.Store(
{
proxy:newExt.data.HttpProxy(
{
url:'/Web/Manage/DeskTop/JSON/ScheleManager/GetSimpleDepartUserInfo.aspx'
}),
//讀取Json
reader:newExt.data.JsonReader(
{totalProperty:"totalCount",root:"root"},
[
{name:'UserId',type:'int'},
{name:'UserName',type:'string'}
])
});

varDepartUserCbox=newExt.form.MultiSelect(
{
fieldLabel:'姓名',
labelStyle:'width:80px',
width:150,
editable:false,
id:'DepartUserDS',
hiddenName:'DepartUserIdDS',
store:DepartUserStore,
emptyText:'--請選擇--',
allowBlank:false,
blankText:'請選擇',
mode:'remote',
displayField:'UserName',
valueField:'UserId',
triggerAction:'all',
selectOnFocus:true,
listWidth:200
});

DepartUserStore.on('load',function()
{
DepartUserCbox.selectAll();//全選
});

DepartUserStore.load();

『貳』 js怎麼實現能多選的下拉框,點一個選中一個

Hi,你的操作就是當已經選擇過的情況下你需要刪除掉數組的相應值。
我幫你改寫了一下,數組值需要存儲選框的下標就可以了的。

<script language="javascript">
var sel = [];
function OnClick() {
var i_ts_desc = document.getElementById("i_ts_desc");
var index = i_ts_desc.selectedIndex;
var iHas = -1;
sel.sort();
for (var i = 0; i < sel.length; i++) {
if (sel[i] == index) {
iHas = i;
} else {
i_ts_desc[sel[i]].selected = true;
}
}
if (iHas == -1) {
sel.push(index);
i_ts_desc[index].selected = true;
} else {
sel.splice(iHas, 1);
i_ts_desc[index].selected = false;
}
}
</script>
<select id="i_ts_desc" multiple="multiple" onclick="OnClick();" >
<option value="A">0</option>
<option value="B">1</option>
<option value="C">2</option>
<option value="D">3</option>
<option value="E">4</option>
<option value="F">5</option>
</select>

『叄』 js代碼里 多選框 如何寫成選中狀態

獲取到checkbox元素後,設置其checked屬性為true或false來改變其選中狀態。

<html>
<head>
<script type="text/javascript">
function check()
{
//根據ID獲取checkbox元素專 設置其checked屬性屬為true 選中

document.getElementById("myCheck").checked=true;
}

function uncheck()
{
//根據ID獲取checkbox元素 設置其checked屬性為false 取消選中

document.getElementById("myCheck").checked=false
}
</script>
</head>

<body>
<form>
<input type="checkbox" id="myCheck" />
<input type="button" onclick="check()" value="選定復選框" />
<input type="button" onclick="uncheck()" value="取消選定復選框" />
</form>
</body>

</html>

『肆』 js獲取多選框被選中的值(js獲取選中的單選按鈕)

js怎麼取得name=checkbox[]的復選框選中個數

利用name屬性值獲取checkbox對象,然後循環判斷checked屬性,true表示被選中,false表示未選中。

首先用document.getElementsByName()這個方法,通過input標簽的name屬性將input元素獲取,並存進obj這個變數值中。然後建一個check_val的數組,通過for循環將input標簽的value值存入數組中,這樣就可以獲取checkbox的選中的多個值。

JS獲取多選框checkbox被選中的個數。varcheckbox=document.getElementsByName(likes[]);//此處通過此種方式才能獲得多選框為數組。

思路:根據name值獲取復選框對象→循環判斷復選框的checked屬性(true表示選中,false為未選中)→計數。

思路:首先利用name屬性值獲取checkbox對象,然後循環判斷checked屬性:如果為true表示被選中,false則表示未選中。

jquery怎樣獲取多個復選框的值?

(selector).val(value)val()方法返回或設置被選元素的值。元素的值是通過value屬性設置的。該方法大多用於input元素。如果該方法未設置參數,則返回被選元素的當前值。

創建如下結構的測試文件--Content,--jquery-1min.js,--JquerySelect.html。【獲取】下拉框【選中值】:使用【.val()】。

/span2.Javascript代碼:函數show(){Obj文件。getElementsByName(「測試」);Check_val=[];For(kinobj){如果(obj[k]。檢查)Check_val。Push(obj[k]。

js怎麼能取得多選下拉框選中的多個值?

首先我們打開軟體進入代碼編輯按照圖示代碼先創建一個下拉框。要運行後網頁界面如此顯示下拉框。接下來我們按照圖示代碼用js來獲取被選中的值。首先我們通過selectedIndex來獲得被選中的下標,再通過下標來獲得值。

方法:獲取多選下拉框對象數組→循環判斷option選項的selected屬性(true為選中,false為未選中)→使用value屬性取出選中項的值。

首先用document.getElementsByName()這個方法,通過input標簽的name屬性將input元素獲取,並存進obj這個變數值中。然後建一個check_val的數組,通過for循環將input標簽的value值存入數組中,這樣就可以獲取checkbox的選中的多個值。

打開vscode,創建一個H5規范的頁面,用於演示js如何給下拉框設置默認值。在頁面中添加一個下拉框,並在html中通過selected屬性,默認選擇下拉框的第2個值。

(selector).val(value)val()方法返回或設置被選元素的值。元素的值是通過value屬性設置的。該方法大多用於input元素。如果該方法未設置參數,則返回被選元素的當前值。

怎麼獲得js獲取復選框的選中的值啊?

1、利用name屬性值獲取checkbox對象,然後循環判斷checked屬性,true表示被選中,false表示未選中。

2、定義變數。選擇所有對象,返回數組。取到對象數組後,用for循環檢測它是不是被選中。如果選中,將value添加到變數中。

3、思路:首先利用name屬性值獲取checkbox對象,然後循環判斷checked屬性:如果為true表示被選中,false則表示未選中。

JS如何獲取表單中復選框的值?

定義變數。選擇所有對象,返回數組。取到對象數組後,用for循環檢測它是不是被選中。如果選中,將value添加到變數中。

首先我們打開軟體進入代碼編輯按照圖示代碼先創建一個下拉框。要運行後網頁界面如此顯示下拉框。接下來我們按照圖示代碼用js來獲取被選中的值。首先我們通過selectedIndex來獲得被選中的下標,再通過下標來獲得值。

你是不是想用JS來獲取用戶所選擇的復選框的值?額。。

value是一樣可以用.value取的。value值就是value=1中的但是一般除了這個值以外,我們先要關注的都是這個checkbox是不是選中了。document.getElementById(xxx1).checked判斷這個值是否是true。

『伍』 js中多選中單擊行能選中,但是單擊那個框時不能選中怎麼辦

你可以自己綁定行事件,當單擊行時,將框的狀態改為選中即可。

『陸』 js怎麼能取得多選下拉框選中的多個值

方法:獲取多選下拉框對象數組→循環判斷option選項的selected屬性(true為選中,false為未選中)→使用value屬性取出選中項的值。實例演示如下:

1、HTML結構

<selectid="test"multiple="true">
<optionvalue="option-A">option-A</option>
<optionvalue="option-B">option-B</option>
<optionvalue="option-C">option-C</option>
<optionvalue="option-D">option-D</option>
</select>
<inputtype="button"value="確定"onclick="fun()"/>

2、javascript代碼

functionfun(){
varselect=document.getElementById("test");
varstr=[];
for(i=0;i<select.length;i++){
if(select.options[i].selected){
str.push(select[i].value);
}
}
alert(str);
}

3、效果演示

閱讀全文

與js多選相關的資料

熱點內容
u盤文件給刪了 瀏覽:737
vuejsoauth2 瀏覽:78
2017微信支付日 瀏覽:81
機械臂編程如何開發 瀏覽:21
標書U盤PDF文件要不要簽字 瀏覽:222
ps軟體文件復制到d盤 瀏覽:148
一般工業固廢招標文件內容 瀏覽:583
網站建設報價怎麼算 瀏覽:66
三星a7000升級安卓502 瀏覽:486
word2010清除分隔符 瀏覽:781
樂視怎麼切換網路 瀏覽:425
cad列印pdf文件名稱與cad不一致 瀏覽:815
電氣與可編程式控制制是什麼 瀏覽:67
文件名中允許使用英文豎線嗎 瀏覽:531
編程貓在哪裡 瀏覽:775
win8共享文件夾訪問許可權 瀏覽:380
cad文件顯示為只讀不能保存怎麼辦 瀏覽:703
如何在系統里忘記網路 瀏覽:24
中小企業出口數據在哪裡找 瀏覽:715
win8和xp傳文件 瀏覽:75

友情鏈接