Javascript选择的项值未正确提取

Javascript selected item value not pulling correctly

本文关键字:提取 选择 Javascript      更新时间:2023-09-26

我正在做一个带有项目列表的选择框(根据Web服务创建的XML动态创建),无法正确提取所选值。以下是正在发生的事情。

我发送的内容:

onchange="changeFunction(this.options[this.selectedIndex].value)"

我收到的:

function (a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!=

我唯一使用的是一些自建函数和jQuery。

任何帮助都将是极好的。

编辑:这是更改功能。它所要做的只是构建一个表单,该表单填充了给定选定项的值。

function changeFunction(selection) {
    console.log(selection);
    $('#right').empty();
    var addNewFields = 'these will be the fields';
    $('#right').append(addNewFields);
}

以下是有问题的选择:

<select class="userSelection" id="userSelection" size="10" style="width:150px;" onchange="changeFunction(this.options[this.selectedIndex].value)"></select>

这就是它html部分的所有代码。它是通过ajax填充的,有两个div,一个用于left,包含select,另一个用于right,包含用户的内容。

下面是创建选项的代码:

        var optionTag = '<option value="' + $(this).find('optionID').text + '" >' + $(this).find('optionName').text() + '</option>';
            $('#userSelection').append(optionTag);
var optionTag = '<option value="' + $(this).find('optionID').text + '" >' + $(this).find('optionName').text() + '</option>';

应该是:

var optionTag = '<option value="' + $(this).find('optionID').text() + '" >' + $(this).find('optionName').text() + '</option>';

请注意,$(this).find('optionID').text应该是$(this).find('optionID').text()

或者更好的是,避免这种汤:

var optionTag = $('<option/>', {
    value: $(this).find('optionID').text(),
    html: $(this).find('optionName').text()    
});

当您将DOM对象的事件处理程序设置为函数时,它会作为参数传递一个事件对象。

selectBox.onchange = function(event) {
    changeFn(this.options[this.selectedIndex].value);
};