DOM与PHP输出不匹配



我有以下PHP脚本:

    function drawDepts(mysqli $con, $defaultDept) {
    $deptQuery = "SELECT * FROM depts";
    $deptResult = $con->query($deptQuery);
    global $request;
    echo "<select id='targetDept' width='200' style='width:200px;' onchange='updateRequest(".$request['id'].", 'targetDept', $('#targetDept').val()'>";
    while ($deptRow = $deptResult->fetch_array(MYSQL_ASSOC)) {
        echo "<option value='" . $deptRow['id'] . "' ";
        if ($deptRow['id'] == $defaultDept) {
            echo "selected='selected'";
        }
        echo ">" . $deptRow['name'] . "</option>";
    }
    echo "</select>";
}

这基本上只是创建了一个带有DB选项的选择框。onchange允许用户在不重新加载页面(ajax)的情况下更新DB。

奇怪的是DOM显示了这一点(IE 11):

<select id="targetDept" style="width: 200px;" onchange="updateRequest(212, " $('#targetdept').val())'="" targetdept',="" width="200">

具体来说,为什么有"=""width="200px"

将javascript函数作为文本进行回显很好。。。IE似乎把onchange标签搞砸了。

您在onchange上使用'时出现语法错误,而"使用'的转义onChange中使用的'

echo "<select id='targetDept' width='200' style='width:200px;' onchange='updateRequest(".$request['id'].", "targetDept", $("#targetDept").val())'>";

最新更新