我有一个用下拉列表显示动态行数的表单。每个下拉列表都有一个id"ReasonCd#",末尾的数字从0开始递增,相应地与行号一起递增。每个下拉列表都有一个默认选择"Select Number",其值为NULL。
我想在表单中添加提交验证。我如何提醒用户是否有任何动态下拉列表选择了默认选项?
<select id='ReasonCd" . $counter . "'> <option disabled='disabled' selected='selected' value=''>Select Number</option> <option>blah</option> </select>
我曾尝试创建自己的jQuery,但不幸的是,我无法让它发挥作用。
(点击提交按钮时)
$("#submitButton").click(function() { $('[id^=ReasonCd]').filter(function(){ if($(this).text() == "Select Number"){ alert('Please Select a Number!!!'); } });
});
检查所选选项:
$("#submitButton").click(function(e) {
$('[id^=ReasonCd] option:selected').filter(function(){
if($(this).text() == "Select Number"){
alert('Please Select a Number!!!');
e.preventDefault(); //cancel postback
return false; //exit of .filter
}
});
});
或者:
$('form').submit(function(e) {
$('[id^=ReasonCd] option:selected').each(function(){
if($(this).text() == "Select Number"){
alert('Please Select a Number!!!');
e.preventDefault();
return false;
}
});
});
具有多个下拉
实时演示更新
这是完整的工作演示
您需要遍历每个id为^=ReasonCd
的下拉列表中的所有选项,并在发现的第一个无效(selectedopts.eq(i).text() == 'Select Number')
处返回false。。
注:退货范围必须是提交功能
$("#submitButton").click(function()
{
selectedopts = $('[id^=ReasonCd] option:selected');
for(i=0;i<selectedopts.length;i++)
{
if(selectedopts.eq(i).text() == 'Select Number')
{
alert('Please Select a Number!!!');
return false;
}
}
});