为什么我需要在触发jqueries之前单击重置按钮两次?

时间:2015-08-18 03:10:00

标签: javascript jquery

我有一个正常的重置按钮。

 <input type="reset" value="Reset" />

单击该按钮时,应该同时有其他jquery生效。

$('[type=reset]').click(function(){
    $('input[name=24hours]:radio').trigger('change');
    $(':checkbox').trigger('change');
});

问题是,我需要在执行$('[type=reset]').click(function()中的jquery之前按两次重置按钮。为什么会发生这种情况以及如何避免它?

编辑:这是jsfiddle。 https://jsfiddle.net/fdvr05s4/9/

1 个答案:

答案 0 :(得分:0)

我在这里看到的问题是,trigger('change')在表单实际重置之前触发。因此,当您单击重置时,它会触发change,因此没有任何反应,然后表单将重置为默认状态。现在,在第二次重置时,表单已处于默认状态,因此change触发器现在可以按预期工作。

请尝试使用此解决方案。通过使用此功能,我们确保在触发change之前已重置表单:

$('[type=button]').click(function(e){
    e.preventDefault();
    $('form')[0].reset();
    $('input[name=yesno]:radio').trigger('change');
});

https://jsfiddle.net/fdvr05s4/10/