2

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

任何帮助表示赞赏!

4

3 回答 3

3

您的 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在当前窗口范围内定义的任何函数。

于 2013-04-22T15:41:54.990 回答
1

您选择 HTML has to many",首先更改为:

<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

于 2013-04-22T15:39:20.183 回答
0

首先 Niels 是正确的,您在对变量执行任何操作之前关闭了函数。两种可能的解决方案。

另外,我对“传递给另一个 JS 文件”的意思有点困惑……如果不将其设置为 url 或表单变量并转到该页面,就无法将其传递给另一个页面。

或 .. 如果 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;
    }
    
于 2013-04-22T16:10:39.770 回答