gpt4 book ai didi

javascript - 在 jQuery 完成修改表单中的值之前提交表单

转载 作者:行者123 更新时间:2023-12-03 10:04:08 25 4
gpt4 key购买 nike

这就是我想要做的:单击单选按钮时,我想更新表单中的一些值,并且只有在更新这些值后,才提交整个表单。我遇到的问题是,表单是在值更新之前提交的。

这是我当前(非工作)的实现:

<div class="btn-group" data-toggle="buttons">
<label id="label_radio_2_78" class="btn btn-info btn-sm checkbox-padding ">
<input onchange="update_transaction(78)" id="radio_2_78" name="ledger_id" value="2" type="radio">
BR
</label>
<label id="label_radio_3_78" class="active">
<input onchange="switch_ledgers(78, 3)" id="radio_3_78" checked="checked" name="ledger_id" value="3" type="radio">
HP
</label>
</div>

 

function switch_ledgers(transactionId, ledgerId)
{
deactivate_radio(transactionId, ledgerId).done
(
update_transaction(transactionId)
);
}

 

//checks if the clicked radio buttion is active, if so it unchecks it.
function deactivate_radio(transactionId, ledgerId)
{
var cb = $('#radio_' + ledgerId + '_' + transactionId + ':checked');
var r = $.Deferred();

if(cb)
{
cb.prop('checked', false);
$('#label_radio_' + ledgerId + '_' + transactionId).removeClass('active');
}
return r.resolve();
}

 

//Submits the form, this function gets called too quickly
function update_transaction(transactionId)
{
var form = $("#transaction_" + transactionId);

$.ajax({
type: form.attr('method'),
data: form.serialize(),
url: form.attr('action')
}).done(function()
{
update_balance();
update_total_balance();
});
}

我希望我已经足够清楚地表达了我想要做什么。

谢谢!

最佳答案

看起来您是直接在第一个输入元素的 onchange 事件中调用 update_transaction() 。

您不应该在更改事件中调用 switch_ledgers() 吗?

例如:

<input onchange="switch_ledgers(78)" id="radio_2_78" name="ledger_id" value="2" type="radio">

关于javascript - 在 jQuery 完成修改表单中的值之前提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30447023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com