【问题标题】:JavaScript function not working in Firefox and Safari (just in Chrome)JavaScript 函数在 Firefox 和 Safari 中不起作用(仅在 Chrome 中)
【发布时间】:2012-06-05 09:31:18
【问题描述】:

我有一个页面,其他 JavaScript 已经正常工作...除了这个:

<script>
function add(numDaysToAdd) {
    var data_in = new Date (document.WADAInsertForm.data_in.value);
    var data_out = data_in.setDate(data_in.getDate()+numDaysToAdd);
    var final_day = data_out.getDate();
    var final_month = data_out.getMonth() + 1;
    var final_year = data_out.getFullYear();

    document.WADAInsertForm.data_out.value = final_year+'-'+final_month+'-'+final_day;
    
    }
</script>

此脚本由复选框上的OnChange 调用以及OnClick 事件触发。澄清一下:

<input type="checkbox" name="product" value="Insurance plan: 1 month" id="product" onClick="this.form.price.value='41.40'" onChange="add(+30)">

当我在 Chrome 中测试页面时,它会完成所有工作:在“价格”字段中插入价格值,并使用适当的值更新“data_out”字段。

当我在 Firefox 和 Safari 中执行相同操作时……它仅适用于“价格”设置。

有什么建议或帮助吗?

【问题讨论】:

    标签: javascript google-chrome dom-events


    【解决方案1】:
    onChange="add(+30)"
    

    这里 +30 不代表脚本中的任何字符串或任何整数,它会通过类型错误,将天数添加到当前日期,您可以使用此脚本

    <script type="text/javascript" language="javascript">
        function AddDays(toAdd) {
            if (!toAdd || toAdd == '' || isNaN(toAdd)) return;
            var d = new Date();
            d.setDate(d.getDate() + parseInt(toAdd));
    
            document.getElementById("result").innerHTML = d.getDate() + "/" + d.getMonth() + "/" + d.getFullYear();
        }
    </script>
    ---------------------- UI ---------------
        <div id="result">
        </div>
        <input type="text" value="0" onkeyup="AddDays(this.value);" />
    

    【讨论】:

      【解决方案2】:

      onClick 无效。使用onclick

      我觉得在复选框上同时显示onclickonchange 很奇怪。您应该在onchange 中包含您的onclick

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-01-04
        • 1970-01-01
        • 1970-01-01
        • 2017-10-26
        • 2015-12-22
        • 2016-03-01
        • 1970-01-01
        相关资源
        最近更新 更多