问问题
12275 次
5 回答
8
于 2012-07-03T17:59:31.850 回答
2
还有简单的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' );
});
于 2012-07-03T19:11:35.387 回答
1
除了":select[multiple]"
(shd be "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");
}
于 2012-07-03T18:17:55.500 回答
1
似乎您只需要在设置了多个值时发出警报,而不仅仅是它作为属性存在:
if($("select[multiple='multiple']").length){
alert("worked");
}
于 2012-07-03T18:23:03.430 回答
0
您可以尝试使用以下尚未建议的布尔指标之一:
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;
}
}
方法二:砰砰 Element.attributes
for (let i = 0; i < selects.length; i++) {
const select = selects[i];
if (!!select.attributes['multiple']) {
alert('Multiple select found');
break;
}
}
于 2021-05-15T20:14:05.363 回答