jquery datepicker根据两个日期之间的差异更改输入值

时间:2011-09-04 10:22:18

标签: javascript jquery

我有3个输入字段

<input type="text" name="cust1" id="cust1" size="10" value="" class="inputbox" />
<input type="text" name="cust2" id="cust2" size="10" value="" class="inputbox" />
<input type="text" name="rent_price" id="rent_price" size="10" value="" disabled="disabled" class="inputbox" />

jQuery Datepicker

$( "input#cust1" ).datepicker();
$( "input#cust2" ).datepicker();

并且可以改变输入#rent_price的值:

    function setSum()
    {
        var hrs = countHrs();
        $("input#rent_price").attr('value',function(){
           sum = parseInt(BAG_PRICE)*parseInt(hrs);
           if (isNaN(sum))
           {
             sum = '';
             return sum;
           } 
           else 
           {
             return sum;
           }
        });
    }

所以当我写这篇文章时:

    $( "input#cust1" ).change(setSum());
    $( "input#cust2" ).change(setSum());

输入值#rent_price仅更改刷新页面。如果我在setSum()中写警报,则触发2次。所以我需要一些建议。

1 个答案:

答案 0 :(得分:1)

使用datepicker's onClose event

$( "input#cust1" ).datepicker({onClose:function(){ setSum() }});
$( "input#cust2" ).datepicker({onClose:function(){ setSum() }});

在编写代码时,尽量不要重复自己,编写一下你的函数:

function setSum()
{
    var sum = parseInt(BAG_PRICE)*parseInt(countHrs());
    if (isNaN(sum)) { sum = '' }
    $("input#rent_price").val(sum);
}