我想在数据表搜索字段中添加一个功能,单击输入字段中的图标可以清除搜索到的文本。
这里有一个有效的清晰搜索jsfiddle:
http://jsfiddle.net/PJZmv/801/
我正在尝试将其与这里的数据表集成:
http://jsfiddle.net/rwone/Y37hZ/
以下是我采取的步骤:
通过更改自定义jquery.dataTables.js
脚本
sSearchStr.replace('_INPUT_', '<input type="text" />') :
sSearchStr==="" ? '<input type="text" />' : sSearchStr+' <input type="text" />';
至:
sSearchStr.replace('_INPUT_', '<span class="clearable"><input type="text" name="data_field" value="" /><span class="icon_clear">x</span></span>') :
sSearchStr==="" ? '<span class="clearable"><input type="text" name="data_field" value="" /><span class="icon_clear">x</span></span>' : sSearchStr+' <span class="clearable"><input type="text" name="data_field" value="" /><span class="icon_clear">x</span></span>';
并添加了这个css:
/* added clear search css */
.clearable {
position:relative;
}
.data_field {
padding-right:30px; /* add space for the 'x' icon*/
}
span.icon_clear {
position:absolute;
right: 9px;
display: none;
top: -2px;
cursor:pointer;
font: bold 14px sans-serif;
color:#cc0000 !important;
}
span.icon_clear:hover {
color:#f52 !important;
}
/* end added clear search css */
然后添加jquery:
$(document).on('propertychange keyup input paste', 'input.data_field', function(){
var io = $(this).val().length ? 1 : 0 ;
$(this).next('.icon_clear').stop().fadeTo(300,io);
}).on('click', '.icon_clear', function() {
$(this).delay(300).fadeTo(300,0).prev('input').val('');
});
但正如您在jsfiddle中看到的,它还没有工作。
因此,所希望的结果是"clearsearch"功能在datatables集成中起作用,就像在独立的jsfiddle中一样。
替换您的代码
$(document).on('propertychange keyup input paste', 'input.data_field', function(){...
带有
$(document).on('propertychange keyup input paste', 'input[name="data_field"]', function(){...
希望能有所帮助。