如何检查我的<选择>元素是否包含 MULTIPLE 属性
how can I check to see if my <select> element contains the multiple attribute
嗨,我已经尝试了许多选项来检查是否在我的选择框中设置了多个属性,但没有一个有效。我正在尝试确定我从中获取值的当前选择框是否是多项选择,到目前为止,这是我尝试过的:
if($(":select[multiple]").length){
alert("worked");
}
也
if($("select").attr("multiple"){
alert("worked");
}
也
if($("select").attr("multiple") != 'undefined'{
alert("worked");
}
.html:
<select multiple="multiple" style="height:50px" class="classname" name="multi_values[]">
<option value="blah">blah</option>
<option value="blah">blah</option>
<option value="blah">blah</option>
</select>
删除 :
的开头:
if($("select[multiple]").length){
alert("worked");
}
演示 : http://jsfiddle.net/D5JX5/
还有简单的JavaScript检查:
var c = document.getElementsByTagName('select'); //collection
for (var i=0, l = c.length; i<l; i++) {
alert(typeof c[i].attributes['multiple'] == 'undefined' ? 'single':'multiple');
}
和jQuery等效:
$('select').each(function(){
alert( typeof this.attributes['multiple'] == 'undefined' ? 'single':'multiple' );
});
您尝试的除":select[multiple]"
(shd 是 "select[multiple]"
)之外的所有选项都应该有效。
JSFiddle: http://jsfiddle.net/VAXF6/2/
但是,您缺少 if 语句的结束参数。
将代码更改为:
if($("select[multiple]").length){
alert("worked");
}
或
if($("select").attr("multiple")){
alert("worked");
}
或
if($("select").attr("multiple") != 'undefined'){
alert("worked");
}
另一种选择:
if($("select").is("[multiple]")){
alert("worked");
}
似乎您只需要在使用值设置多个时才发出警报,而不仅仅是当它作为属性存在时:
if($("select[multiple='multiple']").length){
alert("worked");
}
您可以尝试使用以下尚未提出的布尔指标之一:
let selects = document.getElementsByName('multi_values[]'); // returns collection
方法 1 : hasAttribute()
for (let i = 0; i < selects.length; i++) {
const select = selects[i];
if (select.hasAttribute('multiple')) {
alert('Multiple select found');
break;
}
}
方法2:砰元素属性
for (let i = 0; i < selects.length; i++) {
const select = selects[i];
if (!!select.attributes['multiple']) {
alert('Multiple select found');
break;
}
}
相关文章:
- WebdriverIO waitForExist()选择元素's选定的选项
- 如何选择元素的第n个子元素
- Angular没有根据模型更新我的选择元素
- jquery使用name from变量按类选择元素
- 如何使用jQuery按数据日期属性选择元素
- 向html选择元素添加选项
- 使用Jquery在相同类型的元素中选择元素
- 他们是如何使用angular/jqLite find()方法按属性名称和值选择元素的?ng conf 2015
- 如何在Angular中清除选择元素中的过滤器
- 使用其中一个元素作为参考点,从Javascript数组中选择元素
- Javascript选择元素到字符串的比较
- Angular始终选择选择元素中的第一个选项
- 使用 jquery .find() 遍历按类和存储属性选择元素
- 通过 id json, jquery 选择元素
- 如何基于另一个已经存在的选择器选择元素
- 禁用多个选择元素中的非“选定”选项,但使用 jquery 的一个除外
- HTML 选择元素的只读等效项
- 在iPad上,如何通过Javascript事件在选择元素上设置focus()而不显示选项
- 单击事件似乎不适用于 IE 中的选择元素
- Angular js,在选择元素上,我想 POST 数据以将其保存在数据库中,然后我想使用 PUT 更新它而无需重新加载