【问题标题】:Problems reloading fields in a form [closed]重新加载表单中的字段时出现问题[关闭]
【发布时间】:2016-03-07 18:00:53
【问题描述】:

我在使用表单中的 datepicker 重新加载字段时遇到问题。

该网站在http://eskelak.eus/ 上在线,当我第一次尝试在搜索表单中执行搜索时没问题,但是当我之前按下重置按钮时,日期选择器字段没有恢复。

function the_search_form() {
global $wpdb;

$firstname = filter_input(INPUT_GET, 'first_name', FILTER_SANITIZE_STRING);
$lastname = filter_input(INPUT_GET, 'last_name', FILTER_SANITIZE_STRING);
$province = filter_input(INPUT_GET, 'province', FILTER_SANITIZE_STRING);
$locality = filter_input(INPUT_GET, 'locality', FILTER_SANITIZE_STRING);
$from = filter_input(INPUT_GET, 'from', FILTER_SANITIZE_STRING);
$to = filter_input(INPUT_GET, 'to', FILTER_SANITIZE_STRING);


if (!empty($locality) && isset($locality)) {
    $locality_row = $wpdb->get_row( $wpdb->prepare(
        'SELECT * FROM wp_eskelak_locality WHERE id = %s',
        $locality
    ) );
    $province = $locality_row->province;
}


$active = ' class="active"';
?>
<!-- START SEARCH FORM -->
<form method="get" action="/index.php" id="search">
    <?php $lang = get_language_for_link() ?>
    <?php if ($lang == '') : ?>
        <input type="hidden" name="page_id" value="370"/>
    <?php else : ?>
        <input type="hidden" name="page_id" value="372"/>
    <?php endif ?>
    <h3><?php _e('Buscar Eskelas', 'eskelak')?></h3>
    <div class="form-group">
        <input type="text" name="first_name" value="<?php echo $firstname ?>"
            placeholder="<?php _e( 'Introducir nombre', 'eskelak') ?>">
        <input type="hidden" name="province" value="<?php echo isset($province) ? $province : '' ?>"/>
        <button data-filter="true" value="alava"<?php echo $province=='alava'? $active : '' ?>><?php _e('Araba-Álava') ?></button>
        <button data-filter="true" value="guipuzcoa"<?php echo $province=='guipuzcoa'? $active : '' ?>><?php _e('Gipuzkoa') ?></button>
        <button data-filter="true" value="vizcaya"<?php echo $province=='vizcaya'? $active : '' ?>><?php _e('Bizkaia') ?></button>
    </div>
    <div class="form-group">
        <input type="text" name="last_name" value="<?php echo $lastname ?>"
            placeholder="<?php _e( "Introducir apellidos", 'eskelak' ) ?>">
        <?php the_localities() ?><input id="desde" type="text" name="from" data-placeholder="<?php _e('Desde', 'eskelak') ?>" class="datepicker" value="<?php echo $from ?>"
                placeholder="<?php _e('Desde', 'eskelak') ?>"/>
        <input id="hasta" type="text" name="to" data-placeholder="<?php _e('Hasta', 'eskelak') ?>" class="datepicker" value="<?php echo $to ?>"
                placeholder="<?php _e('Hasta', 'eskelak') ?>"/>
    </div>
    <div class="form-group">
        <button data-send="enviar" type="submit" style="margin: 3px 8px;float: right;" class="buscar">
            <img src="<?php echo get_template_directory_uri()?>/images/icons/search.png" alt="<?php _e('Buscar')?>" />
            <?php _e('Buscar', 'eskelak')?>
        </button>
        <button form="search" data-reset="reset" id="reset_filter" type="submit" style="margin: 3px 8px;float: right;" >
            <!-- <img src="<?php // echo get_template_directory_uri()?>/images/icons/search.png" alt="<?php // _e('Buscar')?>" /> -->
            <?php _e('Reiniciar Filtro', 'eskelak')?>
        </button>
    </div>
</form>

<div class="clear"></div>
<!-- END SEARCH FORM -->
<?php}

【问题讨论】:

  • 问题的质量非常低。如果您询问 jQuery 组件 - 请提供与其相关的代码 sn-p,最好在 JSFiddle 上,以便人们可以帮助您。
  • 在您的网站上运行
  • 第一次没问题@DipaliVasani 但是当您执行第二次搜索并尝试再次加载数据选择器时,这是空的,它没有加载日历。
  • 对不起@Farside,但我不确定错误在哪里,在表单中,在 jquery 中......

标签: php jquery html


【解决方案1】:

这是因为 script 设置了 datepicker

<script src="data:text/javascript,(function(%24)%7B%24(%22.datepicker%22).datepicker(%7BshowButtonPanel%3Atrue%2CdateFormat%3A%22dd%2Fmm%2Fyy%22%7D)%3B%7D)(jQuery)%3B" type="text/javascript">(function($){$(".datepicker").datepicker({showButtonPanel:true,dateFormat:"dd/mm/yy"});})(jQuery);</script>

主页中紧跟在表单之后,在第二页中缺少。

【讨论】:

    【解决方案2】:

    看起来您的网站需要进行良好的更新。在 Chrome DevTools 日志中,我有:

    JQMIGRATE: Logging is active jquery-migrate-1.1.1.js:40 JQMIGRATE: jQuery.browser is deprecated jquery-migrate-1.1.1.js:42 console.trace()migrateWarn @ jquery-migrate-1.1.1.js:42 jquery-migrate-1.1.1.js:40 JQMIGRATE: 'hover' pseudo-event is deprecated, use 'mouseenter mouseleave' jquery-migrate-1.1.1.js:42 console.trace()migrateWarn @ jquery-migrate-1.1.1.js:42

    作为第一步,您应该摆脱这些警告。

    希望能有所帮助!

    【讨论】:

    • 我会尝试升级 JQuery 库@augusto,我会告诉你结果。
    • @Augusto,这些只是警告,它们并不能真正决定这里的天气,它们只是表明您迟早必须更新库。
    猜你喜欢
    • 2022-06-17
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    • 2023-02-17
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    相关资源
    最近更新 更多