繁体   English   中英

通过“输入”字段和下拉列表动态更新字段

[英]Dynamically Update fields through Input field and dropdown

我正在尝试通过输入字段动态更新文本字段。 然后,这将链接到带有值的下拉列表选择。 我还需要显示从今天开始提前30天显示的截止日期。

这是我的HTML:

<div>
    <label for="payment">Payment:</label>
    <input type="text" name="amount" id="amount" onChange="myfunction()"/>
    <br /><br />
    <label for="delivery">Delivery:</label>
    <select id="delivery" name="delivery">
        <option value="1">Fast</option>
        <option value="2">Medium</option>
        <option value="3">Slow</option>
    </select>    
</div>
<br />
<div>
Payment Breakdown: <br /><br />
Payment:
<div name="amount" id="amount"></div>
Freight:   
<div name="delivery" id="delivery"></div> 
Total Payment:
<div name="total" id="total"></div>
Due Date:    
<div name="date" id="date"></div>    
</div>

我正在努力使用Javascript部分并将它们整合在一起。

我已经达到了这一点,现在我被卡住了。 (我知道的不是很远)

function myFunction()
{
var amount = document.getElementById("amount");
var delivery = parseInt($(this).find("option:selected").val());
total = amount + delivery
$("#total").html(total);
};

我查看了Stackoverflow和Google上的示例,但似乎没有什么与我想要实现的相似。 虽然我知道答案就在那里,但我不确定我是否在问正确的问题。

干杯

我会改变它。 这里我有一个updateCost()函数,当更改金额或更改交付时调用该函数。 我还添加了代码来处理截止日期。

从金额中删除内联onchange事件:

<input type="text" name="amount" id="amount"/>

使用Javascript:

function updateCost()
{
    var amount = $('#amount').val();
    var delivery = parseInt($('#delivery').val());

    var total = amount + delivery
    $("#total").html(total);
    $("#amountdiv").html(amount);
    $("#deliverydiv").html(delivery);

    // handle the due date
    var todayPlus30 = new Date();
    todayPlus30.setDate(todayPlus30.getDate()+30);
    var dateStr = todayPlus30.getDate() + "/" + (todayPlus30.getMonth()+1) + "/" + todayPlus30.getFullYear();

    $('#date').html(dateStr);
}

$(document).ready(function(){
    $('#amount').change(function(){ updateCost(); });
    $('#delivery').change(function(){ updateCost(); });
});

您的原始代码有一些问题:

  1. 内联函数调用的错误情况
  2. 使用this当函数内this其实不是您的任何元素(你没有把它作为一个参数)。
  3. 使用amount在计算时amount是输入元件,而不是一个值。
  4. 从可用性的角度来看,它只会在更改金额时尝试更新,我认为更新金额和交付的更新会更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM