一个元素上的多个函数

时间:2014-08-22 19:31:07

标签: jquery

我试图在一个元素上运行两个函数,一个接一个。目前,我有一个输入,将其中的任何内容复制到另一个输入框。我需要的是第二个输入框然后成为计算的一部分。

以下是相关的HTML:

    <p class="text"><span class="set_name"></span> read to me what your current outstanding balance is.

   $<input name="statement_balance_c" id="statement_balance_c" class="statement_balance_c"></input></p> //this box populates the lien input below

<tr>
    <td>Borr Est of Value $
      <input type="text" name="value"  id="value" title="Enter number only"/> </td>
    <td>Loan Amount $<input type="text" name="lien" id="lien" class="lien"  title="Enter number only"/></td>
    <td>LTV<input type="text" name="ltv" id="ltv" title="If this is above 55% proceed with caution" readonly/></td> /*this input uses jquery to calculate the loan to value based  on the inputs of value and lien */
</tr>

这两个函数的jQuery:

    $(".statement_balance_c").on('keyup',function(){
$(".lien").val($(this).val());
});

$('#lien').change(function(){
    var loan_amoumt = document.getElementById('lien').value;
    $('#first_mortgage').attr('value', loan_amoumt );
    $('#first_lien_table').toggle();
    var value = parseInt(document.getElementById('value').value) || 0;
    var lien = parseInt(document.getElementById('lien').value) || 0;
    var ltv = (lien/value)*100 + '%';
    $('#ltv').val(ltv);
    if(this() > '60%'){
        $('#ltv').css('background-color', 'red');
    }
    else{
        $('#ltv').css('background-color', '#2EFE2E');
    }
});

第一个功能完美,但第二个功能没有。第二个函数DID在我添加第一个函数之前工作,如果我手动将数字更改为不同的函数,它将起作用。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您应该在关键字上和/或更改时触发您创建的更改事件:

$(".statement_balance_c").on('keyup', function () {
    $(".lien").val($(this).val()).change();
});

或者

$(".statement_balance_c").on('change',function(){
    $(".lien").val($(this).val()).change();
}); 

答案 1 :(得分:0)

结合使用j08691的指导和onfocus事件,我能够在不返回错误的情况下完成此操作。现在,代码如下所示:

$(".statement_balance_c").on('change',function(){
    $(".lien").val($(this).val()).change();
    });

$('#lien').change(function(){
var loan_amoumt = document.getElementById('lien').value;
$('#first_mortgage').attr('value', loan_amoumt );
$('#first_lien_table').toggle();
var value = parseInt(document.getElementById('value').value) || 0;
var lien = parseInt(document.getElementById('lien').value) || 0;
var ltv = (lien/value)*100 + '%';
$('#ltv').val(ltv);
if(this() > '60%'){
    $('#ltv').css('background-color', 'red');
}
else{
    $('#ltv').css('background-color', '#2EFE2E');
}

和HTML:

<input type="text" name="ltv" onfocus="calculate_ltv()" id="ltv" title="If this is above 55% proceed with caution" readonly />

感谢您的帮助!