如何使select数组为空
How to get select array empty
我的选择选项属性的名称是动态填充的。
在提交我的表格时,我需要知道我是否所有的选择都已填写。。。
我该怎么做?
我还想把鼠标光标移到未填充的选择。
<script type="text/javascript" src="js/jquery-1.6.4.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#teste").click(function () {
a = $("select[name='sel[]'] option:selected").length;
alert(a);
});
});
</script>
<title>
</title>
</head>
<form>
<select name="sel[0]">
<option value="teste"></option>
<option value="teste">1234</option>
<option value="teste">1234</option>
<option value="teste">1234</option>
</select>
<br />
<br />
<br />
<select name="sel[1]">
<option value="teste"></option>
<option value="teste">1234</option>
<option value="teste">1234</option>
<option value="teste">1234</option>
</select>
... Many others
<input type="button" id="teste" value="TESTAR">
</form>
</html>
给默认选项一个值-1,并为这些选项提供一个通用类名(属性以选择器开头是有效的)。
尝试:
HTML:
<form>
<select name="sel[0]" class="sel">
<option value="-1"></option>
<option value="teste">1234</option>
<option value="teste">1234</option>
<option value="teste">1234</option>
</select>
<br />
<br />
<br />
<select name="sel[1]" class="sel">
<option value="-1"></option>
<option value="teste">1234</option>
<option value="teste">1234</option>
<option value="teste">1234</option>
</select>
<input type="button" id="teste" value="TESTAR">
JS:
$(document).ready(function () {
$("#teste").click(function () {
$(".sel").each(function () {
if (this.value == -1) { //If you are not providing value check for this.selectedIndex == 0
$(this).focus(); //set the focus
return false; //and break out of the loop
}
});
});
});
Fiddle
您必须像这样设置变量var a;
。
select[name='sel[]']
没有元素,你有一个数字在里面,你可以用name*=
或name^=
分别说名称contains
或名称starts with
sel
JSFIDDLE演示
$("#teste").click(function () {
var a = $("select[name^='sel'] option:selected");
var count = 0;
$.each(a, function () {
if ($(this).text().length) {
count++;
}
});
alert(count);
});
Select在提交表单时与通常的输入类似。因此,您可以找到空值的Select:
$("select[value=]").first().focus()
或者遍历所有表单元素,检查其值和类型。
http://jsbin.com/UduNaGOh/1/edit?html,输出
$(document).ready(function () {
$("#teste").click(function () {
var test = true;
$("#myform select").each(function(){
var select = $(this);
if(select.val() == 'none') {
select.addClass('fail');
select.focus();
test = false;
} else {
select.removeClass('fail');
}
});
if(test){
alert('well done');
$("#myform select").removeClass('fail');
// do your send stuff ...
}
});
});
我正在更改类以设置空选择的样式。这里是css:
#myform > select.fail { background: red }
如果你只需要空选择的数量,你可以使用:
$('select:has(option[value="none"]:selected)').length
相关文章:
- 如何在Javascript中从select标记的一系列选项中构建二维数组
- 单击select'时将数组行回显到文本区域中;s选项
- 要筛选的数组的管道值的含义:$select.search in angular
- 如何使用php以json中的数组形式返回mysql-select
- 使用挖空.js如何刷新 Select 元素中的可观察数组
- jQuery val() 返回一个在 select/option 元素上带有 IE8 的数组
- 从jquery中的select选项添加两个不同的数组值(text&value)
- 从select创建项目列表/数组
- AngularStrap Select和ng选项don'使用动态数组不能很好地工作
- 如何使select数组为空
- select.val 返回数组中的未定义
- 用 javascript 数组填充 struts2 select 标签
- Angular js 监视带有 ng-repeat 的 Select 标签上的对象数组
- 如何将 select 中的文本与 js 中的数组匹配
- Javascript使用数组填充select选项
- 从js数组中获取select选项和值的最佳方式是什么
- 如何使用foreach绑定将select选项中的参数传递给触发器和筛选数组可观测值
- select onChange事件触发javascript,从数组值中填充隐藏的Input值
- 在select中将ng-model绑定到数组大小
- Select2.js设置默认值为带有输入数组的select box