全部,
我可以使用以下 JQuery 语法重置所有表单元素:
('#myform')[0].reset();
如何修改它以排除“选择框”值的重置?
谢谢
全部,
我可以使用以下 JQuery 语法重置所有表单元素:
('#myform')[0].reset();
如何修改它以排除“选择框”值的重置?
谢谢
给大家..
重置功能不会将所有内容设置为“”(空字符串)
它重置为其初始值..(存储在 value 属性中,或 selected option 等..)
如果你想保持默认的重置功能,那么你应该
<select>
元素例子:
<script type="text/javascript">
$(document).ready(
function(){
$("#resetbutton").click(
function(){
var values = [];
var selected = $("select").each(
function(){
values.push( $(this).val());
});
this.form.reset();
for (i=0;i<selected.length;i++)
$(selected[i]).val(values[i]);
});
}
);
</script>
那不是 jQuery,它是原生 javascript。[0] 带出实际的 DOM 元素,因此它与以下内容相同:
document.getElementById('myform').reset();
reset()
是一个内置的浏览器实现,它重置整个表单。如果您需要重置单个表单类型,请尝试以下操作:
$('#myform :text').val('');
您可以在此处查看所有表单选择器:http: //docs.jquery.com/Selectors
您可以通过将值设置为空字符串并使用大卫的答案(或更完整的答案)重置复选框来进行假重置。您还可以尝试在重置表单之前存储每个选择元素的值,然后在之后恢复值:
var myform = $('#myform');
var selects = $('select', myform);
// Store each current value
selects.each(function() {
$(this).data('previous', $(this).val());
});
myform[0].reset();
// Restore the values
selects.each(function() {
$(this).val($(this).data('previous'));
});
无论出于何种原因,David 的正确回答错误地导致了我的 Google Chrome js。它在说:
未捕获的类型错误:对象# 的属性“重置”不是函数
...所以我决定尝试一个稍微不同的解决方案:
<input id="resetbutton" type="reset" style="visibility:hidden;" name="reset" value="reset" />
<a href="#" onclick="$('#resetbutton').click();">Reset</a>