我在頁面上有多個表單,它們是用Jinja2和Flask生成的,每個表單都有它自己的唯一ID,每個表單中都有一個按鈕。我想單擊按鈕並獲取按鈕實際位於的表單的值。但是,當我嘗試序列化表單時,它是空的。所有console.log
線做工精細,每一個按鈕確實檢索它位於形式表格提交沒有值
HTML:
<form id='{{ "item-"+item.articleNr }}' class="itemTemplate">
<div class="thumb">
<img style="width: 200px;height: 200px;" src="{{ url_for('static',filename='images/'+item.image) }}">
</div>
<div class="contentWrapper">
<div class="content" id="item-content">
<label id="articleNameBlock" name="articleName">{{ item.articleName }}</label>
<div class="articleNrBlock" name="articleNr">{{ item.articleNr }}</div>
<div class="eanBlock" name="ean">{{ item.ean }}</div>
<div class="articleCodeBlock" name="articleCode">{{ item.articleCode }}</div>
<div class="articleColorBlock" name="color">{{ item.Color }}</div>
<div class="priceBlock" name="price">{{ item.Price }}</div>
<div class="buttons">
<button id="addLabel" class="ui-btn ui-btn-inline btn btn-success" type="submit">Label Aanvragen</button>
</div>
</div>
</div>
</form>
JS:
$(document).ready(function(){
$('.btn-success').on('click',function(){
console.log('The addButton is clicked.');
var $form = $(this).parents('form');
var data = $form.serialize();
console.log('Form '+ $form.attr('id'));
console.log(data)
});
//when the form is submitted
$('form').submit(function (evt) {
evt.preventDefault(); //prevents the default action
});
})
切以下兩行: - '變量$形式= $(本)。家長( '形式');無功data = $ form.serialize();'var var data = $(this).parent()。find('form')。serialize();' –
你的表單中唯一的表單元素是submit按鈕。那麼你期望在這裏發送什麼樣的實際數據?或者,當你添加一個名稱屬性(這是無效的HTML btw。,div沒有名稱屬性)時,你是否覺得div會成爲表單元素?當然不是這樣。如果您想實際提交值,則需要使用表單元素(如input或textarea)。 – CBroe
或者處理按鈕點擊或表單提交。處理兩者都是混淆的祕訣。恕我直言,處理表單提交更整潔。正如CBroe指出的那樣,你的形式沒有任何投入。它顯示了一些信息,但不包括將被序列化以提交表單的控件。 – ADyson