Gro*_*oxx 61 jquery-ui datepicker
我有一个日期文本字段,我希望有时只附加一个DatePicker,因为我有一些自己的文本处理脚本来处理部分日期字符串.但是,调用.remove或.destroy会在输入字段上保留文本格式化行为,这会将我的"8"字符串转换为"8/18/2010".更糟糕的是,如果我开始删除,它坚定地认为,一旦我达到"8/18/20",我实际上想要"8/18/2020".
什么是最好的方式完全,完全,使它像从未删除我的页面中的datepicker?我也可以使用它,如果它只是忽略我在任何时候完全输入的文本,但在这种情况下,我更喜欢它出现在双击/图像按钮,而不是总是.
编辑:
这都在jqGrid中,其中'selector'是日期列上的文本框:
function showPicker(selector) {
$(selector).datepicker({
onClose: function() {
$(selector).datepicker('remove');
// or 'destroy' or $('.datepicker').remove(); or $(this).datepick('remove');
}
});
}
Run Code Online (Sandbox Code Playgroud)
这可以防止它返回,但不能操纵我的文本字段.没有其他代码(我知道)正在操纵该字段的内容,只是jqGrid正在监视输入密钥以发送数据.查看页面生成的代码,datepicker div甚至仍然位于底部.
edit2:如果我这样做,我会得到完全相同的行为:
<html>
<body>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-ui.js"></script>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
$(document).ready( function(){
$("#pickle").datepicker({
onClose: function(){
$(this).datepicker('remove');
}
});
});
</script>
<input type="text" id="pickle" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这导致了与我所看到的相同的行为,但将其更改为"destroy" 在这里工作但不在我的页面上.奇.
Oma*_*mar 119
这.datepicker完全删除:
$( selector ).datepicker( "destroy" );
$( selector ).removeClass("hasDatepicker").removeAttr('id');
Run Code Online (Sandbox Code Playgroud)
文档:
http
:
//docs.jquery.com/UI/Datepicker#method-destroy
也阅读下面的评论
小智 8
我通过删除datepicker类然后在绑定到datepicker的元素上调用unbind方法来解决问题.这似乎摆脱了它!
例如:
$('#myelement').datepicker();
/////////datepicker attached to myelement//////
Run Code Online (Sandbox Code Playgroud)
然后:
$('#myelement').removeClass('calendarclass');
$('#myelement').removeClass('hasDatepicker');
$('#myelement').unbind();
Run Code Online (Sandbox Code Playgroud)
只是删除类仍然让输入元素在单击时调用datepicker.可能unbind()它本身就可以完成这项工作,但我有点像带状括号.