Javascript选择的项目值没有正确拉动

时间:2012-02-12 22:59:16

标签: javascript jquery drop-down-menu

我正在做一个带有项目列表的选择框(从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填充,有2个div,一个用于左边,包含select,另一个用于右边,包含用户的内容。

只是为了咯咯笑,这里是创建选项的代码:

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

2 个答案:

答案 0 :(得分:1)

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()    
});

答案 1 :(得分:0)

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

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