的php-jQuery .html使提交按钮不起作用

我正在使用一个简单的颜色选择器,您可以在其中单击一种颜色,然后会出现一个颜色小的示例,其中带有“提交”按钮,因此您可以选择/提交该颜色.

我使用jQuery将提交按钮添加到单击的颜色中,但由于某种原因我的提交按钮未提交.

因此,当您单击一种颜色时,此段将添加带有提交的弹出窗口:

$(this).addClass('selected_color').html(
        num + '<div class="this_color"><div class="color_example">Color value</div><input type="submit" name="submit_color" value="Selecteer kleur"/></div>');

提交形式为FORM,名称为“ submit_color”

PHP:

if(isset($_POST['submit_color'])) :

    $_SESSION['wz_color'] = $_POST['wz_color'];

endif;

我将颜色的值放在名称为wz_color的隐藏字段中.

但是为什么我的按钮不提交?这是因为它是稍后由jquery添加的吗?

解决方法:

当您点击按钮时,点击事件会传播到< span>包含它,并且该事件处理程序再次被触发.这似乎在干扰表单提交.

尝试立即阻止它:

 $(this).addClass('selected_color').html(num + '<div class="this_color"><div class="color_example">Color value</div><input type="submit" name="submit_color" value="Selecteer kleur"/></div>');
 $('[name=submit_color]').click(function(e) { e.stopPropagation(); });

http://jsfiddle.net/mblase75/ve5Kh/

请注意,使用$(document).on(‘click’,'[name = submit_color],function(e){…})委派取消操作不起作用,显然是因为该事件起泡到其之前的跨度一直气泡到文档.

上一篇:Javascript-输入Enter键,而不在内部输入时提交


下一篇:如何确认然后禁用asp.net/javascript中的按钮