以下のコードの変更イベントでJavaScriptをjQueryで上書きしようとしていますが、インラインJavaScriptが宣言されたjQuery機能よりも優先されていると思います。基本的に、追加のJavaScriptファイルを含むAJAXバージョンのサイトを作成しようとしています。追加のAJAXバージョンがなくてもこの機能を使用するにはこの機能が必要ですが、メインのJavaScriptファイルに含めるか、現在のようにインラインのままにするかがわかりません。それらに関する提案や情報をいただければ幸いです。ありがとう!
<form action="/cityhall/villages/" method="post" name="submit_village">
<select name="village" onchange="document.submit_village.submit();">
<option value=""></option>
</select>
</form>
jQueryフォームプラグインを使用して投稿をPHPに送信し、次のようにリクエストを処理しようとしています。
var bank_load_options = {
target: '#content',
beforeSubmit: showRequest,
success: showResponse
};
$('form.get_pages').livequery(function(){
$(this).ajaxForm(bank_load_options);
return false;
});
次のようにコードを変更しました。
<form action="/cityhall/villages/" method="post" id="submit_village" name="submit_village">
<select name="village" class="get_pages" rel="submit_village">
<option value=""></option>
</select>
</form>
<script>
# main JavaScript
$('.get_pages').live('change',function(e){
var submit_page = $(this).attr('rel');
$("#"+submit_page).submit();
});
# ajax JavaScript
var bank_load_options = {
target: '#content',
beforeSubmit: showRequest,
success: showResponse
};
$('.get_pages').live('change',function(){
var submit_page = $(this).attr('rel');
$("#"+submit_page).ajaxForm(get_pages_load_options);
return false;
});
</script>
ただし、変更した場合にのみ、他のすべてのオプションが実行されるようになりました。