繁体   English   中英

结合两个javascript函数计算表格

[英]Combining two javascript functions to calculate form

我有一个表格可以计算两个日期之间的时间,并存储 6 个数字字段。

当用户在两个日期之后开始选择时,我希望让表单计算这些值,以便表单按预期工作。

示例页面位于此处..我的意图是什么

http://jsfiddle.net/GfN5u/1/ js与html

我觉得我快到了,但这周的生活对我来说并不公平。

同样在 IE 8 中,select 元素丢失了它们的内容.....即使在 jsfiddle 中也是如此。

任何帮助,将不胜感激。

谢谢

        <script>
        var txt1 = document.Edit.StartTime.value
        var txt2 = document.Edit.EndTime.value

        var differenceInSeconds = (Calendar.parseDate(txt2, false).getTime() - Calendar.parseDate(txt1, false).getTime())/1000;
        var val9 = differenceInSeconds/60.0/60
        alert(val9)
        </script>


            <script>
        re=/\D/g

        function getGoodVal(fld) {
        var val = fld.value;
        if (!val) val=0;
        if (isNaN(val)) {
        val=val.replace(re,""); // remove all nonDigits
        }
        if (val=="" || isNaN(val)) val = 0; // still not a number or empty
        val = parseFloat(val)
        fld.value=val.toFixed(2);
        return val;
        }

        function calc(theForm) {
        var val10 = val9
        var valb = getGoodVal(theForm.lunch);   
        var val1 = getGoodVal(theForm.TRDO);
        var val2 = getGoodVal(theForm.AnnualLeave);
        var val3 = getGoodVal(theForm.PersonalLeave);
        var val4 = getGoodVal(theForm.WorkFromHome);
        var val5 = getGoodVal(theForm.TOIL); 

        total = (val9-valb) + (val1+val2+val3+val4+val5);
        theForm.total.value=total.toFixed(2)
        }
        </script>   

要在用户选择日期时计算值,请将您的计算链接到在选择日期后调用的某些 javascript 事件。 我注意到您试图将您的 calc() function 链接到文本输入的 onChange 事件,这不起作用。 您可以将 calc() function 链接到 Calendar.setup 的 onSelect 属性。 它看起来像这样:

  Calendar.setup({
    inputField : "StartTime",
    trigger    : "f_btn1",
    onSelect   : function() { this.hide(); calc(document.forms[0]); },
    showTime   : 12,
    dateFormat : "%Y-%m-%d %I:%M %p"
  });

请注意,调用 calc() 就像输入元素的 onChange 属性一样。 但是,对表单的引用会发生变化,因为该表单不是日历 scope:document.forms[0] 的一部分。

拥有一个 function 可能会对您的用户有所帮助,它可以验证是否更新了结束时间,以便它不能早于开始时间。

暂无
暂无

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

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