ボタンの文言を変更するだけなら、AJAXはやり過ぎです。[変更を保存]をクリックすると、通常どおりフォームが送信されます(その後、デフォルトの[クライアントに送信]でフォームが再度読み込まれますか?)、その必要はありません。
必要なのはプレーンなJavaScriptです。ボタンのテキストを変更するonchangeイベントハンドラーを各フィールドに関連付けます。また、フォームの他の側面(非表示の「data_changed」フィールドなど)を変更して、コントローラーがデータを送信する代わりに保存することを認識できるようにすることもできます。
変更が発生しない場合、ボタンは「クライアントに送信」のままになります。
私はこの答えに順調に進んでいますか?フォームを送信せずに「変更を保存」する必要がありますか?または、これを実現する方法の詳細を知りたいですか?
編集:サンプルコードが追加されました
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Save vs Submit Example</title>
<script type="text/javascript">
onchange_handler = function ( event ) {
var form_modified = document.getElementById("form_modified");
var form_submit = document.getElementById("form_submit");
form_modified.value = "true";
form_submit.value = "Save Changes";
}
</script>
</head>
<body>
<form method="post">
<input name="quote_number" type="text" onchange="onchange_handler()" />
<input name="quote_date" type="text" onchange="onchange_handler()" />
<input name="line_number" type="text" onchange="onchange_handler()" />
<input name="line_product" type="text" onchange="onchange_handler()" />
<input name="line_quantity" type="text" onchange="onchange_handler()" />
<input name="form_modified" id="form_modified" type="hidden" value="false" />
<input type="submit" id="form_submit" value="Submit to Client" />
</form>
</body>
</html>