onchange函数没有在自定义wordpress插件中触发

时间:2016-12-18 09:55:59

标签: php jquery wordpress

我在自定义Wordpress插件中调用外部js文件中的onchange()函数时遇到问题。 加入脚本

function ajaxschool_enqueuescripts()
{
    wp_enqueue_script('ajaxschool', ASSFURL. '/js/ajaxschool.js', array('jquery'));
    wp_localize_script('ajaxschool', 'ajaxschoolajax', array( 'ajaxurl' => admin_url( 'admin-ajax.php')));

}

add_action('wp_enqueue_scripts', ajaxschool_enqueuescripts);

这是我的 HTML代码

echo '<div id="HCS-qsCityWrap" class="HCS-qsFieldWrap">';
    global $wpdb;
    $city_results = $wpdb->get_results ("SELECT * from wp_gj73yj2g8h_hillsborough_city_list;");
    echo '<select id="city_id" name="city_name" class="HCS-qsInput HCS-qsSelectInput">';
    echo '<option value="">Choose a City</option>';
    foreach ( $city_results as $result ) {
    echo '<option value="'.$result->city_id.'">'.$result->city_name.'</option>';
    }
    echo '</select>';
    echo '</div>';

jquery ajaxschool.js代码

jQuery(document).ready(function($){
 $('#city-id select').on('change', function(){
    alert("Function Called");
});
});

4 个答案:

答案 0 :(得分:1)

选择器'#city-id select'表示:

  

找到一个标识为city-id的元素。然后在它的后代中找到<select>元素。

但您的<select>已经有了city-id。因此,在<select>中找到<select>是没用的。只需将您的选择器缩小为:

$('#city-id').on('change', function(){
    alert("Function Called");
});

答案 1 :(得分:1)

试试这样。

jQuery(document).ready(function($){

    $(document).on('change','#city_id', function(){
        alert("Function Called");
    });

});

答案 2 :(得分:1)

根据您提供的HTML代码,选择的ID为 city_id 而不是city-id

所以jQuery必须是

jQuery(document).ready(function($){
    $('#city_id').on('change', function(){
        alert("Function Called");
    });
});

答案 3 :(得分:0)

$(document).ready(function(){
    $('#city_id').change(function(){
        alert("Function Called");
    });
});

尝试一下,希望对您有帮助