0

1 つのボタンから 2 つのアクションをトリガーするにはどうすればよいですか? 要素「#result」に移動/スクロールして関数「calculateThis」をトリガーできるボタン/リンクを作成するにはどうすればよいですか (フォームからデータを進める)

これらを 1 つのボタン/リンクに混在させるにはどうすればよいですか?

 <a href="#result">Submit</a>

 <button class="button" onclick="calculateThis(this.form); return false;">Submit</button>

// UPDATED ここに完全なコードがあります

<script type="text/javascript">
function calculateThis(form) {
var userweight=parseInt(form.weight.value, 10);
var caffeineamount=parseInt(form.caffein.value, 10);
var caffeinetimes=parseInt(form.caffeintimes.value, 10);
var totalcaffeine=caffeineamount*caffeinetimes;

console.log(totalcaffeine)
// Calculate max caffeine per person
var maxcaffeine=userweight*10;

// Calculate remaining after 24 hours
// Half life = 6 hours
var totalcaffeineafter=totalcaffeine*(1/16);

// Calculating how many hours until the caffeine completely digested
var totaldigest=totalcaffeine;
var digesttime=0;

while (totaldigest>0.05) {
totaldigest=totaldigest*(1/2);
digesttime++;
}

digesttime=digesttime*6;

// Calculating when the user will probably die of overdose
var countcaffeine=0;
var overdosetime=1;

while (countcaffeine<maxcaffeine){
countcaffeine=countcaffeine+totalcaffeine;
overdosetime++;
}

// Show total amount of caffeine
document.getElementById("showtotalkafein").innerHTML=totalcaffeine;

// Show amount of caffeine after 1 day
document.getElementById("showtotalkafeinsetelah").innerHTML=totalcaffeineafter;

// Show digest time
document.getElementById("showwaktudigest").innerHTML=digesttime;

// Show overdose
document.getElementById("showberapakali").innerHTML=overdosetime;

return false;
}
</script>

<form class="form">
Weight<br />
<input type="text" name="weight" class="required" value="" /><p /> 
Amount of caffein in coffee<br />
<input type="text" name="caffein" class="required" value="" /><p /> 
How many times drinking coffeein a day<br />
<input type="text" name="caffeintimes" class="required" value="" /><p />
<a href="#result" onClick="calculateThis(this.form); return false;">Submit</a>
</form>
<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />

<h1 id="result">Result</h1>
<p id="showtotalkafein">Show Caffein Total Here</p> 
<p id="showtotalkafeinsetelah">Show Caffeine Amount After 24 hours</p> 
<p id="showwaktudigest">Show Digest Time Here</p> 
<p id="showberapakali">Show Overdose Time Here</p>
4

2 に答える 2

1

ボタンと同じようにできるはずです。

<a href="#result" onClick="calculateThis(this.form); return false;">Submit</a>

これはうまくいきませんか?

于 2012-06-09T18:29:03.503 に答える
0

JaggenSWEの答えはほぼそこにありますが、これはリンクをたどるデフォルトの動作を抑制するため、falseを返さないでください。

<a href="#result" onClick="calculateThis(this.form);">Submit</a>

ただし、インラインイベントハンドラーを使用することはお勧めしません。

編集

これは機能します。http://jsbin.com/uwatab/3/

ボタンonclickではなく、onsubmitハンドラーをフォームにアタッチすることを常にお勧めします。このように、フォームでEnterキーを押すと、JavaScriptが実行されます。

于 2012-06-09T18:33:56.027 に答える