2017-08-08 78 views
0

我与他们每个人的和复位按钮,单击窗体选项卡,它重置只是形式的表单字段。优化复位形式不同形式的领域的jQuery

//Reset respective forms 
    $('#thresholds .reset').on('click', function() { 
     $('#thresholds').trigger("reset"); 
    }); 
    $('#attributes .reset').on('click', function() { 
     $('#attributes').trigger("reset"); 
    }); 
    $('#rules .reset').on('click', function() { 
     $('#rules').trigger("reset"); 
    }); 
    $('#events .reset').on('click', function() { 
     $('#events').trigger("reset"); 
    }); 

#thresholds,#attributes,#rules,#events是表单ID。

我如何优化此代码重复?

回答

0

您可以像这样把它们合并:

$('#thresholds .reset, #attributes .reset, #rules .reset, #events .reset').on('click', function() { 
    $(this).parents('form:first').trigger("reset"); 
}); 
+0

This Works!谢谢:d –

+0

不客气,如果是帮你,请[给予好评,并接受答案】(https://stackoverflow.com/help/someone-answers)编码快乐! :) –

+0

已经有:) –

2

可以识别所有reset点击与.reset类,然后选择这个按钮closest from和应用reset trigger

请在以下提到的代码。这会帮助你。

$('.reset').on('click',function(e){ 
    e.preventDefault(); 
    $(this).closest('form').trigger('reset'); 
}); 

查看下面的工作示例。

$('.reset').on('click',function(e){ 
 
    e.preventDefault(); 
 
    $(this).closest('form').trigger('reset'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="thresholds"> 
 
    <input type="text" /> 
 
    <input type="button" class='reset' value="Reset" /> 
 
</form> 
 

 
<form id="attributes"> 
 
    <input type="text" /> 
 
    <input type="button" class='reset' value="Reset" /> 
 
</form> 
 

 

 
<form id="rules"> 
 
    <input type="text" /> 
 
    <input type="button" class='reset' value="Reset" /> 
 
</form> 
 

 
<form id="events"> 
 
    <input type="text" /> 
 
    <input type="button" class='reset' value="Reset" /> 
 
</form>

让我知道,如果它不工作。

+1

这使得代码更短,但没有更优化,你过滤每次点击每一个在文档级别发生 – kapreski

+0

@kapreski时间:你是正确的,它得到的每次点击过滤。我再次更新了我的代码。 –

+0

对不起,我不知道为什么它不适合我。这里是我的小提琴:https://jsfiddle.net/inchrvndr/wthb5yfr/6/ –