-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 に答える