我遇到了从select中获取值并将其放在var。
上的问题HTML
<select id="customer_select"" name="customer_select" class="select" onchange="findcustid(this.value)" >';
JS
function findcustid() {
var cus = document.getElementById('customer_select');
var customer_select = cus.options[cus.selectedIndex].value;
}
var customer_id = customer_select;
感谢任何帮助!
答案 0 :(得分:2)
您的customer_select变量是本地函数,其范围在函数外部不可用。
var customer_id;
function findcustid() {
var cus = document.getElementById('customer_select');
customer_id = document.getElementById('customer_select').value;
}
如果不使用全局cutomer_id变量,可以执行此操作的另一种方法是在当前window
实例中设置它
例如: -
function findcustid() {
var cus = document.getElementById('customer_select');
window.customer_id = document.getElementById('customer_select').value;
}
现在您可以在当前窗口范围内定义的任何函数中访问window.customer_id
。
答案 1 :(得分:0)
您选择HTML必须很多“,首先要更改为:
<select id="customer_select" name="customer_select" class="select" onchange="findcustid(this.value)" >
此外,在设置customer_id之前关闭了该功能,更改为
function findcustid() {
var cus = document.getElementById('customer_select');
var customer_select = cus.options[cus.selectedIndex].value;
var customer_id = customer_select;
alert(customer_id);
}
关闭此功能后无法设置项目。因为函数尚未调用但代码已执行。最后,对于您的代码,customer_id
将是undefined
答案 2 :(得分:0)
首先关闭Niels是正确的,你在对变量做任何事情之前关闭了你的功能。 两种可能的解决方案。
另外,我对你的意思“传递给另一个JS文件”感到有点困惑......你不能把它传递给另一个页面而不把它作为url或form变量并转到那个页面。
或..如果js包含在同一页面上,只需在从任何其他包含的函数调用之前声明此函数:
<script src="../customerFuncs.js"></script>
<script src="../useCustomerFuncs.js"></script>
如果您在其他地方需要customer_id,请将其设置为该函数的返回值,并从另一个函数调用该函数,ala:
function findcustid(){
var cus = document.getElementById('customer_select');
var customer_select = cus.options[cus.selectedIndex].value;
var customer_id = customer_select;
return customer_id;
}
function getId(){
customer_id = findcustid();
}
你可以使它成为任何函数都可以访问的全局变量。你通过在任何函数范围之外声明它来做到这一点。这种方法真的很不受欢迎,因为它通常不是必需的。
gCustomer_Id = '';
function findcustid(){
...
gCustomer_Id = customer_select;
}