我有一个扩展的表单,在单击其他/高级选项变为可用之后进行扩展,现在扩展时我也可以选择返回普通/基本表单。在这种情况下,我想删除在表单的高级部分中输入的所有内容。
我到目前为止:
$(function() {
$('#more').hide();
$("#advanced_search").click(function(){
$(this).text($(this).text() == 'Show advanced search options' ? 'Hide advanced search options (selected options will be deleted)' : 'Show advanced search options');
$('#more input').val('');
$('#swimming-pool').prop('checked', false);
var select = ("#location");
select.find("option[value='']").attr('selected','selected');
select.data("selectBox-selectBoxIt").refresh();
$('#more').slideToggle();
return false;
});
});
我面临的问题是我正在使用一个额外的插件 - selectBoxIt,这使得选择看起来更好。问题是,如果我想重置选择框,只需执行
$('#location').val('');
然后设置值,但实际上不会更改选择框中的可见选定选项。显然你要做的就是:
select.data("selectBox-selectBoxIt").refresh();
但是一旦我使用了slideToggle();变得疯狂并停止工作(它会瞬间滑动并重新上升)。
表单的高级部分包含3个选项:#location #ownership #furniture
和一些文本输入以及一个复选框,它们删除得很好,我只是在选择时遇到问题。
演示slideToggle问题:jsfiddle.net/L3Aux/6