我的选择选项属性的名称是动态填充的。
在提交我的表格时,我需要知道我是否所有的选择都已填写。。。
我该怎么做?
我还想把鼠标光标移到未填充的选择。
<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