javascript函数在Firefox和Safari中无效(仅在Chrome中)

时间:2012-06-05 09:31:18

标签: google-chrome javascript-events

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

<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中执行相同操作时......它仅适用于“价格”设置。

有任何建议或帮助吗? 非常感谢提前

米歇尔

2 个答案:

答案 0 :(得分: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);" />

答案 1 :(得分:0)

onClick无效。使用onclick

我发现在复选框上同时包含onclickonchange会很奇怪。您应该将onclick添加到onchange