計算を行うためにユーザーがコンパイルする必要があるフォームを作成しました。AJAX スクリプトは、結果を [送信] ボタンの直後の div に表示します。しかし、せっかちなユーザーは、ボタンの直後に結果が表示されていることに気付かないため、「SUBMIT」を複数回クリックする傾向があることに気付きました。ユーザーが「SUBMIT」をクリックするたびに、結果を含む div ([id=results]) の一番下までスクロールする方法を考えていました。もちろん、送信ボタンに href 属性を含めることはできないので、html アンカーを作成する方法がわかりません...もう少し jquery が必要だと思います。
編集:ソースコード:calculator1.php
<form name="formpeso" id="formpeso" action="" method="post">
<div>
<label for="altezza">Inserisci la tua altezza <strong>(in cm)</strong></label>
<input type="text" name="altezza" id="altezza" onkeyup="commadot(this)" value="" />
[FOO... FOO...]
<input type="submit" id="submit" value="send data" />
</div>
</form>
<div id="results">RESULTS WILL APPEAR HERE AFTER CLICKING ON SUBMIT</div>
テキストフィールドを検証し、結果 (calculator2.php に処理) を表示する関数を次に示します。
$(document).ready(function(){
$("#formpeso").validate({
debug: false,
rules: {
altezza: {min:20, required: true},
peso: {min:1, required: true},
vita: {min:1, required: true},
fianchi: {min:1, required: true},
collo: {min:1, required: true},
polso: {min:1, required: true},
},
messages: {
altezza: "Non hai compilato il campo!<br />",
peso: "Non hai compilato il campo!<br />",
vita: "Non hai compilato il campo!<br />",
fianchi: "Non hai compilato il campo!<br />",
collo: "Non hai compilato il campo!<br />",
polso: "Non hai compilato il campo!<br />",
},
submitHandler: function(form) {
// do other stuff for a valid form
$.post('calculator2.php', $("#formpeso").serialize(), function(data) {
$('#results').html(data);
});
}
});
});
デモ:リンク