Javascript 简单JS函数不工作

Javascript 简单JS函数不工作,javascript,Javascript,我一辈子都搞不明白为什么这不管用。在单选按钮更改中更改“添加到购物车”按钮是一个简单的函数,但每当我执行该函数时,它都会说这不是一个函数。我错过了什么 <h2>Select a Payment Option:</h2> <form method="post" enctype='multipart/form-data'> <input type="radio" name="addtocart" id="fullpay" value="66"

我一辈子都搞不明白为什么这不管用。在单选按钮更改中更改“添加到购物车”按钮是一个简单的函数,但每当我执行该函数时,它都会说这不是一个函数。我错过了什么

 <h2>Select a Payment Option:</h2>

 <form  method="post" enctype='multipart/form-data'>
   <input type="radio" name="addtocart" id="fullpay" value="66" onclick="fullpay();" /><h3 style="color: #f57e20;">Full Payment - <s>$119.80</s> $79.95</s></h3>

   <input type="radio" name="addtocart" id="payments" value="69" onclick="payments();" /><h3 style="color: #f57e20;">Payment plan - $26.65 / month for 3 months</h3>
   <hr/>
   <div id="cartbutton"></div>
 </form>
选择付款选项:
全额付款-119.80美元79.95美元
付款计划-3个月内每月26.65美元

JS:

window.onload=function(){
功能全薪(){
var cartbutton=document.getElementById(“cartbutton”);
cartbutton.innerHTML=“”;
}
职能付款(){
var cartbutton=document.getElementById(“cartbutton”);
cartbutton.innerHTML=“”;
}
};

您正在“加载”处理程序函数中定义函数。这意味着函数是该处理函数的私有函数,因此它们在全局上下文中不可见


您可以通过为全局对象(
窗口
)上的属性指定引用来显式导出函数,或者最好在“加载”中使用
.addEventListener()
处理程序设置事件处理,而不是标记中的旧式事件属性。

您正在“加载”处理程序函数中定义函数。这意味着函数是该处理函数的私有函数,因此它们在全局上下文中不可见


您可以通过将引用指定给全局对象(
窗口
)上的属性来显式导出函数,或者最好在“加载”处理程序中使用
.addEventListener()
来设置事件处理,而不是标记中的旧式事件属性。

使您的函数成为全局函数:

window.onload = function(){
// functions here are not global
};

// functions here are global
 function fullpay(){
    var cartbutton = document.getElementById("cartbutton");
    cartbutton.innerHTML = "<a href='/?add-to-cart=66' rel='nofollow' data-product_id='66' data-product_sku='' class='button add_to_cart_button'>Add to cart</a>";
}

 function payments(){
    var cartbutton = document.getElementById("cartbutton");
    cartbutton.innerHTML = "<a href='/?add-to-cart=69' rel='nofollow' data-product_id='69' data-product_sku='' class='button add_to_cart_button'>Add to cart</a>";
    }
window.onload=function(){
//这里的函数不是全局函数
};
//这里的功能是全局的
功能全薪(){
var cartbutton=document.getElementById(“cartbutton”);
cartbutton.innerHTML=“”;
}
职能付款(){
var cartbutton=document.getElementById(“cartbutton”);
cartbutton.innerHTML=“”;
}

使您的功能全球化:

window.onload = function(){
// functions here are not global
};

// functions here are global
 function fullpay(){
    var cartbutton = document.getElementById("cartbutton");
    cartbutton.innerHTML = "<a href='/?add-to-cart=66' rel='nofollow' data-product_id='66' data-product_sku='' class='button add_to_cart_button'>Add to cart</a>";
}

 function payments(){
    var cartbutton = document.getElementById("cartbutton");
    cartbutton.innerHTML = "<a href='/?add-to-cart=69' rel='nofollow' data-product_id='69' data-product_sku='' class='button add_to_cart_button'>Add to cart</a>";
    }
window.onload=function(){
//这里的函数不是全局函数
};
//这里的功能是全局的
功能全薪(){
var cartbutton=document.getElementById(“cartbutton”);
cartbutton.innerHTML=“”;
}
职能付款(){
var cartbutton=document.getElementById(“cartbutton”);
cartbutton.innerHTML=“”;
}

将您的函数放在窗口之外。onload,您就可以开始了@Pointy已经解释了为什么它不工作。把你的函数放在你的窗口之外。onload,你就可以开始了@波蒂已经解释了为什么它不起作用。哦,当然。非常感谢你。我快把自己逼疯了。哦,当然。非常感谢你。我快把自己逼疯了。