0

私は3つのドロップダウンフィールドを持っています。検証に失敗した後、その3つのフィールドを強調表示したいのですが、検証後に1つのフィールドのみが強調表示され、そのフィールドフォーム送信を選択した後、他の2つのフィールドのスクリプトは機能しません

$("#inputSubmit").click(function(){

    var pColor = $("#select").val();
    var pSize = $("#select2").val();
    var pQuantity = $("#select3").val();


    if((pColor == '') || (pColor == 'color')) 
    {

        $("#select").css("border-color", "red");
        $("#error").show();

    } 
    if((pSize == '') || (pSize == 'size')) 
    {
        alert(1);
        $("#select2").css("border-color", "red");

    }

   if((pQuantity = '') || (pQuantity == 'quantity')) 
    {
        $("#select3").css("border-color", "red");
    }

    if( (pColor != 'color') && (pSize != 'size') && (pQuantity != 'quantity'))
    {       

        $("#InputForm").submit();
    }

});
4

1 に答える 1

1

次のようなものを試してください。

var isValid = $('select').filter(function() {
    return !this.value || this.value == $(this).data('default-value');
}).css("border-color", "red").length​ == 0;

if (isValid)
    $("#InputForm").submit();

すべて<select>の要素data-default-valueに対して、デフォルト値の値を使用して属性を設定します。これは、20行ではなく5行で行われます。

于 2012-04-17T11:58:41.617 に答える