Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jQuery时select的奇怪行为_Jquery_Jquery Ui - Fatal编程技术网

使用jQuery时select的奇怪行为

使用jQuery时select的奇怪行为,jquery,jquery-ui,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("selecte

我在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。这里怎么了

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

该值应为selected=selected,非true

如果您使用的是jQuery 1.6+,请尝试此操作

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

就是

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

这不会更改选定的选项,但它仍然是特定的。我还使用了$'type'.val'99';而且不起作用你是不是从Firebug那里得到了后续代码?是的,我只是随便说说而已。两人的行为都一样,但对我来说,他们都能工作。
close: function() {
    $('#type').append('<option value="99">' + typename.val() + '</option>');
    $('#type').prop('selectedIndex', $('#type option').length - 1);
    typename.val("").removeClass("ui-state-error");
}