ID で識別される特定の DOM 要素が変更されたときに .post() 関数を実行する JavaScript を使用しています。
$.fn.subSelectWithAjax = function() {
var that = this;
this.change(function() {
$.post("/people/thisguy", {id: that.val()}, null, "script");
});
}
$(document).ready(function(){
$("#this_guy").subSelectWithAjax();
});
#this_guy
フォーム内の選択要素です。変更すると、.post 関数を実行し、URL「/people/thisguy」に送信します。
.subSelectWithAjax() 関数が実行されている要素の ID によって決定される条件付きで .post 関数を実行する if ステートメントを追加したいと考えています。私はそれを次のように試しました:
$.fn.subSelectWithAjax = function() {
var that = this;
if(this==document.getElementById('#this_guy')) {
this.change(function() {
$.post("/people/thisguy", {id: that.val()}, null, "script");
});
} else {
this.change(function() {
$.post("/people/anyotherguy", {id: that.val()}, null, "script");
});
}
}
$(document).ready(function(){
$("#this_guy").subSelectWithAjax();
$("#that_guy").subSelectWithAjax();
$("#the_other_guy").subSelectWithAjax();
});
最初の .post 関数は、変更された要素の ID が this_guy である場合、つまり URL "/people/thisguy" に直接送信される場合に実行されると予想しています。ただし、else 句で指定された .post 関数は常に実行されます。これは、等価演算子に適切な引数を渡すことができないために発生すると結論付けました。
また、JavaScript では、else 句を実行するには、if ステートメントが構文的に有効である必要がありますか? また、私が書いたものが、私が探しているものではなく、他のチェックに有効かどうかを判断しようとしています.