必须单击两次按钮才能执行操作

时间:2015-08-10 16:13:30

标签: javascript jquery symfony

我的javascript代码存在问题

目前,我正在使用symfony2,我需要使用此javascript操作

我想,如果单击该按钮,列表将被填充,但问题是我需要点击两次。

这是我的代码

function sellistt() {
    $('#vallc').click(function() {
        $('select#vall > option').prop('selected', true);
    });
}

这里是按钮:

<button id="vallc" onclick="sellistt();" class="btn btn-primary">Validate</button>

请问有什么建议吗? 谢谢!

2 个答案:

答案 0 :(得分:1)

这就够了,

$('#vallc').click(function() {
   $('select#vall > option').prop('selected', true);
});

从标记中删除内联处理程序。

您的代码中出现了什么问题? 在第一次单击时,事件将绑定到由选择器标识的元素。在第二次单击时,事件将被正常触发。但事件将在事件登记时发生多次。

答案 1 :(得分:1)

点击按钮时,您可以通过两种方式混合使用。

使用当前代码,单击按钮时,您调用函数sellistt()(感谢按钮元素上的onclick属性)。

函数sellistt()将EventListener添加到按钮。此EventListener等待单击该按钮以执行此代码:

$('select#vall > option').prop('selected', true);

所以上面的代码只会在第二次点击时执行。 您只需要EventListener。把这部分放在一个函数之外:

$('#vallc').click(function() {
    $('select#vall > option').prop('selected', true);
});

并删除onclick属性,这是一种旧习惯,在您的代码中根本不需要。