我對此提交到通過value
不同的多個按鈕的形式。當我點擊一個按鈕,然後點擊第二個按鈕,該功能就會對它們進行操作,而不僅僅是第二個按鈕。有沒有辦法來防止這種行爲?jQuery的按鈕點擊註冊以前點擊
這與我在這裏問的問題有些相關:Why does function only work on second click?但是如果有多個按鈕,因爲它只是註冊按鈕列表中的第一個按鈕,所以解決方案無效。
JS:
$(document).ready(function() {
$(':button').click(function(){
var myval = $(this).attr("value");
$('#post-form').on('submit', function(event) {
event.preventDefault();
console.log("form submitted!");
console.log(myval);
//var cbtn = $("button");
//var btnval = cbtn.val();
//console.log(cbtn);
document.getElementById('gbimg').style.display = 'none';
document.getElementById('rgimg').style.display = 'none';
create_post(myval);
});
});
function create_post(btnval) {
console.log("create post is working!");
$.ajax({
HTML:
<form action="/create_post/" method="POST" id="post-form">
<div class="col-sm-4" id="toprow">
<h4 style="font-family:verdana"> Models </h4>
<img src='{% static 'images/USAcomplete2.png' %}' class="img-responsive thumbnail" id='gbimg' >
<div class="btn-toolbar">
<button type="submit" name="model" value="test" class="btn btn-default">test</button>
<button type="submit" name="model" value="test2" class="btn btn-default">test2</button>
<button type="submit" name="model" value="test3" class="btn btn-default">test3</button>
</div>
</div>
</form>
爲什麼你在點擊處理程序中有提交處理程序?一個'submit'處理程序就足夠了;因爲你已經有'button type =「submit」' –
@ShaunakD當我使用提交處理程序時,它會返回所有按鈕的列表,而不是我單擊的按鈕。見第二段。的 – wxcoder
可能重複[jQuery的:如何讓哪個按鈕是在表單提交點擊](http://stackoverflow.com/questions/5721724/jquery-how-to-get-which-button-was-clicked-upon-表單提交) – lshettyl