0

ユーザーが米国を選択すると、米国の都市のテキストボックスが表示されますが、ユーザーが米国の選択を解除するとどうなりますか?

非表示の都市テキストボックスでない場合 、米国が選択されているかどうかを確認するにはどうすればよいですか。ここに画像の説明を入力 私のスクリプトは次のとおりです。

<tr>
<td nowrap="nowrap">
<label for="countryId">Countries</label>
</td>
<td>
<select id="countryId" onchange="usCity();" multiple="multiple" name="countryId[]">
<option value="1">United States</option>
<option value="2">United Kingdom</option>
<option value="3">Australia</option>
<option value="4">UAE</option>
<option value="5">Denmark</option>
<option value="6">Czech Republic</option>
<option value="7">Brazil</option>
<option value="8">Singapore</option>
<option value="9">Pakistan</option>
<option value="10">Germany</option>
<option value="11">India</option>
<option value="12">SriLanka</option>
<option value="13">UK</option>
<option value="14">Algeria</option>
<option value="15">Andorra</option>
<option value="16">Caneda</option>
<option value="17">HongKong</option>
</select>
</td>
<td valign="top">
</tr>
<tr id="usCitytr" style="display: none;">
<td nowrap="nowrap">
<label for="USCity">US City Name</label>
</td>
<td colspan="3">
<input id="USCity" type="text" value="" name="USCity">
</td>
</tr>

function usCity()
    {
        if ($("#countryId option:selected").text() == 'United States' || $("#countryId option:selected").text() == 'US'){
            $("#usCitytr").show();
        }
    }

選択ごとに、選択したすべての値を配列構造で取得し、ループを使用して「US」を見つけ、見つかった場合は「US City」テキストボックスを表示し、そうでない場合は非表示にする必要があります。このために私は使用しました

alert($('select#countryId').text());

ただし、コンボボックスに存在するすべての値を返します。でも

alert($('select#countryId').val());

選択した値のみを返しますが、「US」はどこにでもある可能性があるため、「US」が存在するインデックスではなく「US」が必要です。

4

2 に答える 2

3
<option id="opt_US" value="1">United States</option>


if ($("#opt_US").is(":selected") {
    $("#usCitytr").show();
} else {
    $("#usCitytr").hide();
}
于 2012-07-04T12:36:02.803 に答える
0
    function usCity()
    {
        if ($("#countryId option:selected").text() == 'United States' || $("#countryId option:selected").text() == 'US'){
            $("#usCitytr").show();
        } else {
            $("#usCitytr").hide();
        }
    }
于 2012-07-04T12:51:28.617 に答える