選択ボックスの変更時に実行される次のコードがあります。
$('#reg-phone-type').change( function() {
console.dir($(this));
console.log("$(this).val():" + $(this).val());
if( $(this).val == 'work' ) {
// do one thing
} else {
// do something else
}
});
印刷するconsole.dir($(this));
と、選択したオプションが(私のスクリーンショットの例では)「機能する」に設定されていることがわかります(ラベルは適切なケースですが、実際のオプション値は低いため、ケースの問題を扱っていないことがわかります)。
選択ボックスが変更された後の Firebug の HTML は次のとおりです (デフォルトは「home」です)。
<select name="regPhoneType" id="reg-phone-type" style="display: none;" value="work">
<option value="home">Home</option>
<option value="work" selected="selected">Work</option>
<option value="cell">Cell</option>
</select>
したがって、オプションが正しく選択されていることがわかります。では、なぜ、jquery で 1 行だけ後に を呼び出したときにconsole.log("$(this).val():" + $(this).val());
、「仕事」ではなく「家」を取得するのでしょうか。私の理解では.val()
、選択ボックスの選択されたオプションの値を返すので、「仕事」を得る必要があります。