首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使两个脚本协同工作以创建下拉菜单

使两个脚本协同工作以创建下拉菜单
EN

Stack Overflow用户
提问于 2013-04-09 06:52:53
回答 2查看 197关注 0票数 1

我有这个HTML代码

代码语言:javascript
复制
<html>
<head>
<script type="text/javascript">
    window.onload = function(){
    document.getElementById("shipping-method").onchange = function(){
        window.scrollTo(0, 0);
    };
};
</script>
<script>
function calc() {
var subtotal = parseFloat(document.getElementById("subtotal").innerHTML.substring(1));
var shipping = parseInt(document.getElementById("shipping-method").value);
if(shipping == 1) {
    var total = subtotal+6.95;
    document.getElementById("shipping").innerHTML = "$"+6.95;
} else {
    var total = subtotal+17.95;
    document.getElementById("shipping").innerHTML = "$"+17.95;
}
document.getElementById("total").innerHTML = "$"+total;
}
</script>
</head>
<body>
<select  onchange="calc()" class="shipping-method" id="shipping-method">
<option value="">-Choose a shipping method-</option>
<option selected="selected" value="1">normal shipping - $6.95</option>
<option value="2">Priority Shipping - $17.95</option>

</select>
<div class="calculations">
<table>

<tbody><tr>
    <td>Subtotal:</td>
    <td id="subtotal">$97.00</td>
</tr>


<tr>
    <td>Shipping:</td>
    <td id="shipping">$6.95</td>
</tr>



<tr class="total">
    <td>Total:</td>
    <td id="total">$103.95</td>
</tr>
</tbody></table>
</div>
</body>
</html>

下拉菜单在网页的底部,所以我使用第一个脚本在选择其中一个选项并获得总数后将用户带到页面顶部,但两个脚本不能一起工作,我必须删除其中一个才能让另一个工作,如何让两个脚本一起工作而没有任何冲突,谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-09 07:01:12

您正在重写onchange函数。如果你想做两件事,那么把它们都放在onchange函数中,不要给它赋值两次。

以下是一些示例代码(为简洁起见)。

代码语言:javascript
复制
<html>
<head><title>Example</title></head>
<body>
<select id="shipping-method"></select>
<table></table>
<script type="text/javascript">
    function calc() {
        // do calculations here
    }
    document.getElementById("shipping-method").onchange = function(){
        window.scrollTo(0, 0); // scroll to top
        calc(); // call function
    };
</script>
</body>
</html>

请注意,我将javascript放在底部是为了避免访问不存在的元素。

票数 1
EN

Stack Overflow用户

发布于 2013-04-09 07:00:21

试着贴上这个:

代码语言:javascript
复制
function calc() {
var subtotal = parseFloat(document.getElementById("subtotal").innerHTML.substring(1));
var shipping = parseInt(document.getElementById("shipping-method").value);
if(shipping == 1) {
    var total = subtotal+6.95;
    document.getElementById("shipping").innerHTML = "$"+6.95;
} else {
    var total = subtotal+17.95;
    document.getElementById("shipping").innerHTML = "$"+17.95;
}
document.getElementById("total").innerHTML = "$"+total;
}

就在顶部的函数之前:

代码语言:javascript
复制
window.onload = function(){
document.getElementById("shipping-method").onchange = function(){
    window.scrollTo(0, 0);
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15890430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档