我的应用程序中使用了Struts自定义日期标记。当日期发生变化并执行操作时,我需要触发事件。我尝试过onchange / onkeyup / onkeydown事件。
<form method="get" id="searchform" action="<?php echo esc_url( home_url( '/' ) ); ?>" role="search">
<label for="s" class="assistive-text"><?php _e( 'Search', 'understrap' ); ?></label>
<div class="input-group">
<input type="text" class="field form-control" name="s" id="s" placeholder="<?php esc_attr_e( 'Search …', 'understrap' ); ?>" />
<input type="hidden" name="post_type" value="country">
<?php
$args= array('hide_empty'=>false,
);
$district = get_terms('country',$args); ?>
<select name="country">
<option value="" selected="selected"> Select</option>
<?php foreach ($district as $region) {?>
<<option value="albania"> <?php echo $region->name;?></option>
<?php } ?>
</select>
<input type="submit" class="submit btn btn-primary" name="submit" id="searchsubmit" value="<?php esc_attr_e( 'Search', 'understrap' ); ?>" />
</span>
</div>
</form>
但它会给我一个错误,如下所示
<s:date property="data(date)" disabled="false" todayButtonDisabled="true" id="date" />
我们是否有任何事件可以处理此日期自定义标记的onchange事件?
答案 0 :(得分:0)
更常见的方法是不在html代码中使用任何on *属性,并使用javascript向事件添加(javascript-)动作。我希望你的自定义标签允许class-attribute:
<s:date property="data(date)" disabled="false" todayButtonDisabled="true" id="date" class="dateelements"/>
例如用jQuery:
$('.dateelements').on('keydown', function(evt) {
//dosomething
});
或者您可以更改自定义标签定义(应该是项目中的某个tld文件)以允许on *事件。有一个选项<dynamic-attributes>true</dynamic-attributes>
应该有效。