0

私は jQuery をよりよく理解しようとしており、その一部をテストするためにランダムなページを作成しています。出発地と目的地の国を選択できるフォームを備えた小さな旅行代理店のページを作成しました。デフォルトの出発地/目的地は米国で、その下に州の 2 番目のオプションが表示されます。ユーザーが米国以外を選択すると、Chrome を除き、州のオプションが表示されなくなります。

ウェブサイト: http://www.stephenweigel.com/portfolio/somewheresomehow

スクリプト: ( $(document).ready(function() があります。JS ファイル全体を投稿する必要があるとは思いませんでした)

 $('#destination').click(function(){
            // Show US States if Destination is US
            var destination = $('#destination').val();
            var domestic = 'USA';

            if (destination == domestic) {
                $('#usDest').css("display","inline");
            } else {
                $('#usDest').css("display","none");
            } 

html:

<div>
      <select name="destination" id="destination">
        <option value="USA" selected="selected">USA</option>
        <option value="Canada">Canada</option>
        <option value="Mexico">Mexico</option>
        <option value="Italy">Italy</option>
         <option value="France"> France </option>
        <option value="Spain"> Spain </option>
      </select> <!--end destination-->
     </div>
     <div>
     <select name="usDest" id="usDest">
        <option value="Alabama" selected="selected">Alabama</option>
            <option value="Alaska">Alaska</option>
            <option value="Arizona">Arizona</option>
            <option value="Arkansas">Arkansas</option>
            <option value="California">California</option>
            <option value="Colorado">Colorado</option>
            <option value="Connecticut">Connecticut</option>
            <option value="Delaware">Delaware</option>
            <option value="District of Columbia">District of Columbia</option>
            <option value="Florida">Florida</option>
            <option value="Georgia">Georgia</option>
            <option value="Hawaii">Hawaii</option>
            <option value="Idaho">Idaho</option>
            <option value="Illinois">Illinois</option>
            <option value="Indiana">Indiana</option>
            <option value="Iowa">Iowa</option>
            <option value="Kansas">Kansas</option>
            <option value="Kentucky">Kentucky</option>
            <option value="Louisiana">Louisiana</option>
            <option value="Maine">Maine</option>
            <option value="Maryland">Maryland</option>
            <option value="Massachusetts">Massachusetts</option>
            <option value="Michigan">Michigan</option>
            <option value="Minnesota">Minnesota</option>
            <option value="Missouri">Missouri</option>
            <option value="Montana">Montana</option>
            <option value="Nebraska">Nebraska</option>
            <option value="Nevada">Nevada</option>
            <option value="New Hampshire">New Hampshire</option>
            <option value="New Jersey">New Jersey</option>
            <option value="New Mexico">New Mexico</option>
            <option value="New York">New York</option>
            <option value="North Carolina">North Carolina</option>
            <option value="North Dakota">North Dakota</option>
            <option value="Ohio">Ohio</option>
            <option value="Oklahoma">Oklahoma</option>
            <option value="Oregon">Oregon</option>
            <option value="Pennsylvania">Pennsylvania</option>
            <option value="Rhode Island">Rhode Island</option>
            <option value="South Carolina">South Carolina</option>
            <option value="South Dakota">South Dakota</option>
            <option value="Tennessee">Tennessee</option>
            <option value="Texas">Texas</option>
            <option value="Utah">Utah</option>
            <option value="Vermont">Vermont</option>
            <option value="Virginia">Virginia</option>
            <option value="Washington">Washington</option>
            <option value="West Virginia">West Virginia</option>
            <option value="Wisconsin">Wisconsin</option>
            <option value="Wyoming">Wyoming</option>
      </select> <!-- end usDest-->
      </div>

何かが足りないのかもしれませんが、Firefox、Safari、Internet Explorer 9 では機能するのに chrome では機能しないのは奇妙に思えます。

私も使ってみました:

  $('#origin').click(function(){
            var origin = $('#origin').val();
            var domestic = 'USA';

            if (origin == domestic) {
                $('#usOrigin').removeClass("invisible");
                $('#usOrigin').addClass("visible");
            } else {
                $('#usOrigin').removeClass("visible");
                $('#usOrigin').addClass("invisible");
            }

CSSで:

.visible {
    display: inline;

}

.invisible {
    display: none;  
}

しかし、それはクロムでも機能しません。(他のブラウザでも動作します)

任意の提案をいただければ幸いです。

4

2 に答える 2

1

hide()と を使用しshow()て、jQuery でこの効果を簡単に実現できます。しかし、人々がここに投稿していることに基づいて、JS の伝播(コードのエラー) に問題があると思います。これは拡張機能の欠陥が原因である可能性があります。アプリをテストして、Incognito Mode拡張機能を簡単かつ一時的に無効にします。Chrome でシークレット モードを起動するにはCTRL + SHIFT + N

于 2012-05-18T17:23:00.060 に答える
0

これが私がまとめたものです: http://jsfiddle.net/XzQkb/

<div>
    <select name="destination" id="destination">
        <option value="USA" selected="selected">USA</option>
        <option value="Canada">Canada</option>
        <option value="Mexico">Mexico</option>
        <option value="Italy">Italy</option>
        <option value="France"> France </option>
        <option value="Spain"> Spain </option>
    </select> <!--end destination-->
</div>
<div>
    <select name="usDest" id="usDest">
        <option value="Alabama" selected="selected">Alabama</option>
        <option value="Alaska">Alaska</option>
        <option value="Arizona">Arizona</option>
        <option value="Arkansas">Arkansas</option>
        <option value="California">California</option>
        <option value="Colorado">Colorado</option>
        <option value="Connecticut">Connecticut</option>
        <option value="Delaware">Delaware</option>
        <option value="District of Columbia">District of Columbia</option>
        <option value="Florida">Florida</option>
        <option value="Georgia">Georgia</option>
        <option value="Hawaii">Hawaii</option>
        <option value="Idaho">Idaho</option>
        <option value="Illinois">Illinois</option>
        <option value="Indiana">Indiana</option>
        <option value="Iowa">Iowa</option>
        <option value="Kansas">Kansas</option>
        <option value="Kentucky">Kentucky</option>
        <option value="Louisiana">Louisiana</option>
        <option value="Maine">Maine</option>
        <option value="Maryland">Maryland</option>
        <option value="Massachusetts">Massachusetts</option>
        <option value="Michigan">Michigan</option>
        <option value="Minnesota">Minnesota</option>
        <option value="Missouri">Missouri</option>
        <option value="Montana">Montana</option>
        <option value="Nebraska">Nebraska</option>
        <option value="Nevada">Nevada</option>
        <option value="New Hampshire">New Hampshire</option>
        <option value="New Jersey">New Jersey</option>
        <option value="New Mexico">New Mexico</option>
        <option value="New York">New York</option>
        <option value="North Carolina">North Carolina</option>
        <option value="North Dakota">North Dakota</option>
        <option value="Ohio">Ohio</option>
        <option value="Oklahoma">Oklahoma</option>
        <option value="Oregon">Oregon</option>
        <option value="Pennsylvania">Pennsylvania</option>
        <option value="Rhode Island">Rhode Island</option>
        <option value="South Carolina">South Carolina</option>
        <option value="South Dakota">South Dakota</option>
        <option value="Tennessee">Tennessee</option>
        <option value="Texas">Texas</option>
        <option value="Utah">Utah</option>
        <option value="Vermont">Vermont</option>
        <option value="Virginia">Virginia</option>
        <option value="Washington">Washington</option>
        <option value="West Virginia">West Virginia</option>
        <option value="Wisconsin">Wisconsin</option>
        <option value="Wyoming">Wyoming</option>
    </select> <!-- end usDest-->
</div>​

$("#destination").on("change", function () {
    $("#usDest").toggle($(this).val() === "USA");
});​
于 2012-05-18T17:29:51.593 に答える