使用jQuery选择的奇怪行为

时间:2011-07-22 13:00:55

标签: jquery jquery-ui

我在jQuery UI对话框的close函数中使用此代码:

close: function() {
                $('#type').append('<option value="99">'+ typename.val() +'</option>');
                $('#type option:last').attr("selected", true).siblings("option").removeAttr("selected");
                typename.val( "" ).removeClass( "ui-state-error" );
            }

99只是占位符,看看是否有效。关闭之前,选择如下:

<select style="opacity: 0;" id="type" name="tipo">
    <option value="1" selected="selected">Particular</option>
    <option value="2">Company</option>
    <option value="">Add new</option>
</select>

关闭后:

<select style="opacity: 0;" id="type" name="tipo">
    <option value="1">Particular</option>
    <option value="2">Company</option>
    <option value="">Add new</option>
<option value="99">Test</option></select>

因此,删除所选内容但不添加所选内容。但是,如果我尝试提醒$('#type')。val()它会显示99.这里有什么问题?

2 个答案:

答案 0 :(得分:1)

如果你使用的是jQuery 1.6+,试试这个。

$('#type').prop('selectedIndex', $('#type option').length - 1);

OR

$("#type option[value='99']").attr("selected", "selected");

即,

close: function() {
    $('#type').append('<option value="99">' + typename.val() + '</option>');
    $('#type').prop('selectedIndex', $('#type option').length - 1);
    typename.val("").removeClass("ui-state-error");
}

答案 1 :(得分:0)

$('#type option:last').attr("selected", "selected")

应该选择值=“选中”,而不是真实