0

I'm new to jQuery but here is what I'm trying to do.

I have a form with an multi select field named City and Zip,

I'm trying to get the values of this select field and compare it against a list of cities I have, if found any match jQuery will update the value of a hidden text field named city with these values and then submit the form. if no match found they will be redirected to a different website.

Same thing with the Zip codes, it will get the zip codes from the same field and see if it matchs any zip code from the list. if yes then update the zip code hidden field, if no then redirect them to another website.

Here is my code right now and It's not working.

$("#front-form").submit(function(event) {
 // Getting the values from the HTML select field
 var CityandZip = $("#citynzip").val();

 //Comparing the values with the cities list
 if (CityandZip === "City 1" || "City 2" || "City 3") {
    //Updaing the hidden field and submitting
    $("#HiddenCityField").val(CityandZip);
 //Comparing the values with the ZIP code list
 } else if (CityandZip === "11111" || "11112" || "11113") {
    //Updating the hidden ZIP code field
    $("#HiddenZipField").val(CityandZip);

 } else {
    //Redircting to a new site
    window.location.href = "http://www. redirecttowebsite.com"; 

 }

 });

Any help would be appreciated and thanks in advanced.

4

4 に答える 4

1

これをチェックしました。これは、郵便番号チェックではなく、都市チェックに対してのみ行いましたが、既存の実装を構築するだけです。

$(function () {
    var arrCities = [ "Philadelphia", "Pittsburgh", "NYC" ];
    $("#front-form").submit(function (event) {
        $("#citynzip :selected").each(function (i, selected) {
            if ($.inArray($(selected).text().trim(), arrCities) > -1) {
                $("#HiddenCityField").val($(selected).text());
            }
            else {
                window.location.href = "http://www. redirecttowebsite.com";
            }
        });
    });
});

私がしたことを調べます。まず、都市の基本配列があります。ここにいくつか投げました。それから私はあなたが持っていたようにフォーム送信イベントに添付します。次に、jqueryセレクターを使用して、選択されているcitynzip要素のすべての要素を選択し、選択された各要素に対して.each()を実行します。条件は、jqueryの.inArray()関数を使用して、選択されたアイテムが配列内にあるかどうかをチェックし、選択されたアイテムがarrCitiesと比較する基本配列内にあるかどうかをチェックします。そうである場合は、それを非表示フィールドに追加します。

選択範囲が配列にない場合、どのように処理するかわかりません。現在、選択のいずれかが配列に含まれていない場合は、一部が含まれている場合でも、ページをリダイレクトして、ユーザーが行ったすべての選択が配列に存在する場合にのみ続行するように見えます。これは出発点を提供するはずです。

于 2013-02-19T21:38:19.333 に答える
0
$("#HiddenCityField").val() = CityandZip;

それはうまくいきません。あなたがする必要があります:

$("#HiddenCityField").val(CityandZip);
于 2013-02-19T20:56:21.503 に答える
0

タイプミスがあります

window.location.herf

また、ORは次のようになります。

if (CityandZip === "City 1" || CityandZip === "City 2" || CityandZip === "City 3")

最後に、HiddenZipFieldに値を適用する方法も正しくありません。val()関数は、パラメータとして設定したい値を取ります。val(CityAndZip)

于 2013-02-19T20:55:06.353 に答える
0

これが私がそれを機能させる方法であり、選択入力フィールドを配列と比較し、値を非表示フィールドに割り当てるコードの下にあります。

$(function () {
var arrCities = [ "City 1", "City 2", "City 3" ];

var arrZip = [ "11111", "22222", "33333" ];

$("#front-form").submit(function (event) {
        $("#citynzip :selected").each(function (i, selected) {
            if ($.inArray($(selected).val(), arrCities) > -1) {
                $(selected).each(function(i, selected) {
                    $("#front-form").append("<input type='hidden' name='City[]' id='City' value='" + $(selected).val() + "' />")
                });
            } else if ($.inArray($(selected).val(), arrZip) > -1) {
                $(selected).each(function(i, selected) {
                    $("#front-form").append("<input type='hidden' name='Zip[]' id='Zip' value='" + $(selected).val() + "' />")
                });
            } else {
                event.preventDefault();
                window.location.href = "http://www.website.com/"
            }
        });
    });
});

ここにいるみんなのおかげで、そしていくつかの研究で私はそれを理解することができました。

于 2013-02-20T16:40:10.983 に答える