当我的表单中的一个字段获得焦点时,我希望调用一个JavaScript函数来计算该字段的值,而无需放置特定的按钮执行此操作。
这是否可能而不导致表单重新加载?
我已经考虑过将金额字段设为只读,并通过其他方式进行操作,但我想知道更改数量字段是否可以使用数量字段中的onchange或金额字段中的onfocus来更改金额字段的值。
但是金额字段没有更新。我也无法使用计算按钮进行更新。
这是否可能而不导致表单重新加载?
我已经考虑过将金额字段设为只读,并通过其他方式进行操作,但我想知道更改数量字段是否可以使用数量字段中的onchange或金额字段中的onfocus来更改金额字段的值。
Purchase Tickets<br>
<script type="text/javascript" language="JavaScript1.2">
<script type="text/javascript" language="JavaScript1.2">
document.write(
'<form name="InvGenPayTickets" action="'+PostURL+'"
onsubmit="return validateForm();" method=GET>');
</script>
<input type=hidden name="TplURL" value="GenPayCCInfo.html">
<input type=hidden name="CancelURL" value="Ooopsie.html">
<input type=hidden name="SuccessURL" value="Joanie.html">
<input type='hidden' name='TransDesc' id='TransDesc'
value="$_POST['TransDesc']; ?>" />
<input type='text' name='Quantity' id='Quantity' /> <br />
Amount<br />
$<input type='text' name='Amount' id='Amount' />
<input type="submit" value="Next">
<br>
</form>
编辑:
以下是不会更新的函数。如果我使用
<input type='text' name='Quantity'
id='Quantity' onchange="return retTotalAmt();" />
但是金额字段没有更新。我也无法使用计算按钮进行更新。
<script type="text/javascript" language="JavaScript1.2">
function retTotalAmt()
{
alert("Got here.");
var total_amt
= (document.getElementById('Quantity').value * ticketCost)
+ DonationAmount;
document.getElementById('Amount').value = total_amt;
}
</script>
根据评论中的要求:
<input type='text' name='Quantity'
id='Quantity' onchange="return retTotalAmt();" />
编辑 -- 显示问题
<script type="text/javascript" language="JavaScript1.2">
var ticketCost = 40.00;
function EnterPage()
{
var currentTotalAmount = DonationAmount + ticketCost;
//DonationAmount moved up to ticketCost's scope fixed problem.
var DonationAmount = <?php echo($_POST['DonationAmount']); ?>;
document.getElementById('DonationAmountField').value = DonationAmount.toFixed(2);
document.getElementById('Quantity').value=1;
document.getElementById('Amount').value = currentTotalAmount.toFixed(2);
return;
}
focus
事件。请参见此处以获取一种跨浏览器附加元素事件的方法。 - Shmiddty