如何使用Jquery(或JS)选择动态创建的输入字段?

时间:2014-04-16 07:05:57

标签: javascript jquery

此输入选择字段是动态生成的,选项将根据用户在之前字段中选择的内容而改变。

<select name="vehicle">
    <?php $loop = new WP_Query( array( 'post_type' => 'fleet') ); ?>
    <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
    <option class="vehicle-option" value="<? the_title() ?>" <?= $_POST["vehicle"] ==                     the_title('', '', false) ? "selected" : "" ?>>
    <?php the_title(); ?>
    </option>
    <?php endwhile; wp_reset_query(); ?>
</select>

因为这些选项是动态生成的,所以我无法使用Jquery选择该字段。 (我可以使用CSS选择它,但我需要对此字段应用验证,因为它是用户必须选择的必填字段。)

下面的代码不会选择它,我也尝试在字段和字段周围添加ID和类标记,但它们都失败了。

$('select[name=vehicle]’)………

因为最终我希望能够在这个字段中选择选项;

$('select[name=vehicle]').change(function(){ 
    if($("select[name=vehicle] option:selected").val() !== "Vehicle preference"){
    //run function
    }
    else{
    //run function
    }
}

2 个答案:

答案 0 :(得分:2)

您可以将 event delegation 用于动态创建的元素:

$(document).on('change', 'select[name = vehicle]', function () {
    if ($(this).find("option:selected").val() !== "Vehicle preference") {
        //run function
    } else {
        //run function
    }
});

答案 1 :(得分:0)

如果你想选择一个动态生成的元素,请尝试使用jquery&#39; s&#39; function。(如果使用小于1.7的jquery版本,则使用&#39; live&#39; function)