html form reset not doing triggering select onchange html表单重置不会触发select的onchange事件。
html form reset not doing triggering select onchange html表单重置不会触发select的onchange事件。
我有一个表单,根据我的选择,字段需要发生变化。但是当我点击重置按钮时,选择框重置为默认值,但选择框上的onchange事件不会触发。有没有办法在我的javascript中添加这个功能呢?
我使用一个type="reset"的按钮进行重置。
$('#newHistoryPart select[name="roundType"]').on('change', function (data) {
$(".answerType").hide();
selected = $(this).find("option:selected").val();
roundTypeChange(selected);
});
问题的出现原因是在重置表单时,重置select元素会触发其onchange事件,导致选择框的改变再次触发过滤表格的动作,进而陷入无限循环。
解决方法是在点击重置按钮时,手动触发select元素的change事件。可以通过以下代码实现:
$('input[type="reset"]').click(function() { $("select").trigger('change'); });
这样,在重置表单时,会触发select元素的change事件,但不会再次执行过滤表格的动作,从而避免了无限循环的问题。
同时,如果使用了select2插件,可以通过以下代码重置select2选择框:
$(this).find("select").trigger("change");
这样,重置select2选择框时,也不会触发change事件,避免了无限循环的问题。
问题出现的原因是当使用HTML表单的reset按钮时,无法触发select元素的onchange事件。解决方法是使用jQuery的prop()方法将selectedIndex属性设置为0。具体代码如下:
$('select[name="roundType"]').prop('selectedIndex',0);
点击这里可以查看示例演示。
问题的出现原因是通过HTML表单的reset方法来重置表单时,无法触发select元素的onchange事件。这可能是由于reset方法只会重置表单的值,而不会触发任何事件。
要解决这个问题,可以使用onreset事件代替onchange事件。在表单的reset事件中添加相应的处理逻辑即可。
以下是解决方法的示例代码:
$('#yourform').on('reset', function(){ // 在这里添加重置表单时的处理逻辑 });
通过将上述代码添加到页面的脚本中,当表单被重置时,会触发绑定的reset事件,并执行相应的处理逻辑。这样就可以在重置表单时执行一些操作,而不仅仅是重置表单的值。
希望以上内容对您有帮助!