我有一个扩展表单,在单击时会扩展,在单击其他/高级选项后可用,现在扩展时,我还提供返回正常/基本表单的选项。在这种情况下,我想删除在表单的高级部分中输入的所有内容。
我到了这个地步:
$(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