2016-10-06 129 views
0
The following script enables users to prompt a value into the input field of a form: 

    <script> 
    $(document).ready(function(){ 
    $("button").click(function(){ 
     $('input[name="fine"]').val(computeEndTime($('input[name="ini"]').val())); 
    }); 
    function computeEndTime(ini){ 
     var parts = ini.split(/[:,\s\.]+/).map(Number); 
     var hourstart = parseInt(parts.shift()); 
     var minutestart = parseInt(parts.shift()); 
     var totalm = (hourstart * 60) + minutestart + 100; 
     var minutes = totalm%60; 
     var hours = (totalm - minutes)/60; 
     return hours + ":" + minutes; 
    } 
}); 
</script> 

HTML表單是這樣的:jQuery的按鈕觸發表單提交

<form action="next.php" method="POST"> 
    <input type="text" name="ini" maxlength="5" /> 
    <input type="text" name="fine" maxlength="5" /> 
    <button>100</button> 
    <input type="submit" name="invia" value="go on" /> 
</form> 

正如你所看到的,腳本需要輸入到輸入"ini",並通過該按鈕的時間值的命令行提示符輸入"fine"另一個時間值(最初的一個+ 100分鐘)。

我遇到的問題是,當按鈕<button>推,也是其他提交表單的按鈕就被觸發,用戶立即重定向到頁面next.php

我該如何避免這種情況,並要求用戶推送提交按鈕?

回答

1

更改按鈕

<button type="button">100</button> 

默認爲type="submit",所以它提交表單。

1

這應該做的伎倆

$("button").click(function(e){ 
    $('input[name="fine"]').val(computeEndTime($('input[name="ini"]').val())); 
    e.preventDefault(); 
}); 
+1

儘量不要使用'button'作爲選擇器,這會觸發文檔中的任何按鈕。給它一個標識符 – Franco

+0

你能告訴我如何給這個按鈕一個標識符並指向它在腳本中嗎?如果我有多個'

+1

然後你會用$(「button#someId」)選擇它 –