0

これが私が持っているフォームの一部で、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つ必要です。

4

1 に答える 1

1

saveTemplate()関数に値を渡してみて、渡された値に応じて異なる動作をするように関数に指示することができます。

<input type="image" name="submit" value="savetemplate" onclick="saveTemplate('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('updatetemplate'); return false;" class="add_new_link" src="<?=BASE_URL . '/' . IMAGE_URL . '/buttons/btn_update_template.gif'?>"/>
于 2012-08-12T22:38:44.373 に答える