これが私が持っているフォームの一部で、3つの送信ボタンがあります
<input type="image" name="submit" value="saveasset" class="submit" src="<?=BASE_URL . '/' . IMAGE_URL . '/buttons/btn_save_changes.gif'?>" />
<input type="image" name="submit" value="savetemplate" onclick="saveTemplate(); return false;" class="add_new_link" src="<?=BASE_URL . '/' . IMAGE_URL . '/buttons/btn_new_template.gif'?>"/>
<input type="image" name="submit" value="updatetemplate" onclick="saveTemplate(); return false;" class="add_new_link" src="<?=BASE_URL . '/' . IMAGE_URL . '/buttons/btn_update_template.gif'?>"/>
最初のものをクリックすると、アクション関数に「saveasset」が正しく送信されます。2番目のボタンをクリックすると、クリックされたボタンが「savetemplate」であるにもかかわらず、「updatetemplate」がアクション関数に(AJAX経由で)送信されます。3つ目をクリックすると、「updatetemplate」がアクション関数に正しく送信されます(AJAX経由)。
これはsaveTemplate()関数です(プロトタイプを使用)
function saveTemplate(){
$('add_asset').request({
onComplete: function (response) {
$('message_inline').show();
$('message_inline').update(response.responseText);
}
});
}
ボタンが2つしかない場合は、すべてが期待どおりに機能しますが、3つ必要です。