JavaScript从输入中丢失了空白

时间:2014-08-24 19:09:44

标签: javascript php

这是我的问题。我正在查询数据库以获取与该唯一编号相关联的编号和文本。

<select id="acct" name="acct" onchange="updateAcctnum(this.value, this.id);">
    <option value='None'></option>
    <?php
        $sql = 'select cast(trim(k00001) as char(13) ccsid 37),
            cast(trim(substr(f00001,14-13,31)) as char(13) ccsid 37)
            from QS36F."BD.BMST"
            where cast(trim(substr(f00001,48-13,13)) as char(13) ccsid 37) = 
            '. "'".B001."'" ;
        $result = db2_exec($conn, $sql);
        while ($row = db2_fetch_array($result)) {
            $acctnum = $row[0];
            $acctname = $row[1];
            echo "<option value=" . $acctnum . ">" . $acctname . " -- "
                . $acctnum . "</option>";
        }
    ?>

我将第0行与第1行连接起来,得到类似“B001 1 - Health”的内容。这部分工作正常。 但后来我使用javascript来获取数字。$ acctnum或第0行。我正在使用此代码。

function updateAcctnum(val) {
    var actnum = document.getElementById('acct').value;
    document.getElementById('acctnum').value = actnum;
    alert(actnum);
}

当此变量传递给javascript时,它会丢失空格后的空格和数字。有谁知道造成这种情况的原因以及如何解决这个问题?

感谢。

1 个答案:

答案 0 :(得分:2)

问题在于:

echo "<option value=" . $acctnum . ">";

在输出的HTML中会产生类似<option value=B001 1>的内容。您需要引用该值:

echo "<option value='" . $acctnum . "'>";
                    ^                ^