まず、そこでAmar Ravikumarソリューションを試しましたが、それでも機能しません。
私はこのコードを持っています:
$form['button'] = array(
'#type' => "button",
'#id' => "mymoduleAjaxButton",
'#value' => t("Process"),
'#ajax' => array(
'callback' => "mymodule_form_callback",
'wrapper' => "message",
'method' => "html",
),
);
そして、私はクリックできる多くのグラフィカルなものを含むキャンバスを持っています。
特定の要素をクリックすると、ajaxフォームを送信する必要があります(ボタンを押した場合など)。
jsコードは次のとおりです。
// circle is a Kinetic.Circle object.
circle.on("click touchcancel tap", function() {
var fill = onClick(posX, posY);
this.setFill(fill);
layer.draw();
});
function onClick(x, y) {
// Some stuff
jQuery("#mymoduleAjaxButton").trigger("mousedown");
return "red";
}
ご覧のとおり、私はAmarのアドバイスに従っています(最初の行を参照)が、機能しません。サークルの色が変わりますが、フォームが送信されません。
私が試した他の解決策:
jQuery("#mymoduleAjaxButton").trigger("click"); // Like mousedown
jQuery("#mymoduleAjaxForm").submit(); // It refreshes my page... Not what i want, otherwise i wouldn't use ajax
jQuery(document).ready(function() { jQuery("#mymoduleAjaxButton").trigger("click"); });
/* Replace the click by mousedown doesn't change anything too,
moreover i believe it's useless here to add this here... */
誰かが私がそれを実行する方法を知っていますか、または私が間違っていることを知っていますか?ありがとう。