重置表单,但一个特定字段除外

我想清除表单form1而不清除文本框textbox1 。 但是以下不起作用:

 $('#form1').not("input[type=text]#textbox1").trigger('reset'); 

除了textbox1之外,我可以为每个字段执行.html('') ,但我不想这样做,因为表单中会添加更多字段,因此manitaninability不好。

不幸的是, reset事件发生在form并影响其中的所有表单相关元素。 要实现您的需求,您可以选择所有必需的表单元素并手动设置其值,例如:

 $('#form1').find('input, select, textarea').not("#textbox1").val(''); 

上面的元素选择器应该足够通用,以满足动态添加到表单的其他字段

您可以先将#textbox1上的值保存在变量中,然后正常重置表单,然后将保存的值分配给#textbox1 。 这节省了选择每种输入类型并单独重置的麻烦。

 var value1 = $("input#textbox1").val(); $('#form1').trigger('reset'); $("input#textbox1").val( value1 );