-4

我需要帮助提交具有相同值的多个下拉列表的表单,

条件:如果email未选择警报电子邮件需要选择否则检查已选择的值

<form method="post" action="record_save.php">
    <div id="student_records">
        <select name="select1">
            <option value="0">None</option>
            <option value="1">email</option>
            <option value="2">firstname</option>
            <option value="3">lastname</option>
        </select>
        <select name="select2">
            <option value="0">None</option>
            <option value="1">email</option>
            <option value="2">firstname</option>
            <option value="3">lastname</option>
        </select>
        <select name="select3">
            <option value="0">None</option>
            <option value="1">email</option>
            <option value="2">firstname</option>
            <option value="3">lastname</option>
        </select>
        <!-- until -->
        <select name="select10">
            <option value="0">None</option>
            <option value="1">email</option>
            <option value="2">firstname</option>
            <option value="3">lastname</option>
        </select>
        <input type='submit' name='submit'>
    </div>
</form>
4

2 回答 2

1

这应该做你想要的。

我遍历选定的选项并计算每个选项出现的次数。在第一次检测到重复时,我添加了一条错误消息。我还确保选择了一封电子邮件。如果有任何错误,我们会提醒他们,否则表单将被提交。

(function ($) {

    var form = $('#student_records').parent();

    form.submit(function (event) {

        event.preventDefault();

        var selected = {},
            errors = [];

        form.find('option:selected').each(function (index, elem) {

            var val = $(elem).val().trim();

            if (! selected[val]) {
                selected[val] = 1;
                return;

            } else if (selected[val] == 1) {

                errors.push('Already selected: ' + $(elem).text());
            }

            selected[val] += 1;
        });

        if (! selected[1]) {
            errors.push('Must select email.');
        }

        if (errors.length) {
            alert(errors.join("\n"));
            return;
        }

        form.submit();
    });

}) (jQuery);
于 2012-06-04T03:00:24.020 回答
0

您应该使用 JQuery 或 JavaScript 来检查值。如下所示:

 if (validateTheForm()) { 
    $('#yourForm').submit();
 }

function validateTheForm () {
$(':text, select, textarea').each(function() {  
    if ($(this).val().trim().length == 0) {  
        $(this).addClass('errorField'); 
            return false; 
    } else {
        $(this).removeClass('errorField').addClass('successField');
        return true;
    }    
});
};
于 2012-06-04T02:53:10.870 回答