从打开Struts2停止sj:datepicker

从打开Struts2停止sj:datepicker,struts2,jquery-ui-datepicker,Struts2,Jquery Ui Datepicker,我有以下: <sj:datepicker id="dateFrom_id%{index}" name="billingItems[%{index}].dateFrom" value="%{billingItems[#index].dateFrom}" displayFormat="dd.mm.yy" cssClass="customDatePicker" buttonImage="/images/icons/calendar-bl

我有以下

<sj:datepicker
    id="dateFrom_id%{index}"  
    name="billingItems[%{index}].dateFrom" 
    value="%{billingItems[#index].dateFrom}"  
    displayFormat="dd.mm.yy"
    cssClass="customDatePicker" 
    buttonImage="/images/icons/calendar-blue.png"
    parentTheme="css_custom"
    firstDay="1"
    onBeforeTopics="beforeShow"
/>
如何阻止事件传播。我试过:

event.stopPropagation();
event.preventDefault();
event.stopImmediatePropagation();

但似乎什么都不起作用。

不要使用
event.stopImmediatePropagation()只使用
stopImmediatePropagation()

试试这个

$.subscribe('beforeShow', function(event, data) {

if($(event.originalEvent.input).attr('readonly')=="readonly"){
     stopImmediatePropagation();
    alert('hi');
}
});
警报行将不会执行。

另外,不要忘记在中使用readonly=“true”。比如说

<sj:datepicker
id="dateFrom_id"  
name="dateFrom" 
value="%{'today'}"
displayFormat="dd.mm.yy"
buttonImage="images/icon/Calendar-Blue.png"
cssClass="customDatePicker" 
firstDay="1"
onBeforeTopics="beforeShow"
readonly="true"
/>


AFAIK使用当前版本的struts2 jquery插件无法轻松实现这一点。等待更新或使用普通jQuery.update在我的项目中不是解决方案?我找到了一种方法:如果我故意导致错误,例如调用一个不存在的方法event.callNonExistingMethode();然后传播停止,但这不是一个好的解决方案。还有其他解决办法吗?
<sj:datepicker
id="dateFrom_id"  
name="dateFrom" 
value="%{'today'}"
displayFormat="dd.mm.yy"
buttonImage="images/icon/Calendar-Blue.png"
cssClass="customDatePicker" 
firstDay="1"
onBeforeTopics="beforeShow"
readonly="true"
/>