从select中获取一个变量值并将其传递给另一个JS文件

时间:2013-04-22 15:37:55

标签: javascript jquery

我遇到了从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;

感谢任何帮助!

3 个答案:

答案 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>
  1. 如果您在其他地方需要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();
    }
    
  2. 你可以使它成为任何函数都可以访问的全局变量。你通过在任何函数范围之外声明它来做到这一点。这种方法真的很不受欢迎,因为它通常不是必需的。

    gCustomer_Id = '';
    
    function  findcustid(){ 
        ... 
        gCustomer_Id = customer_select;
    }