表单提交验证动态下拉列表数


Form Submit Validating Dynamic # of Dropdowns

我有一个用下拉列表显示动态行数的表单。每个下拉列表都有一个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;
        }
    }
});