所有
我可以使用以下JQuery语法重置所有表单元素:
('#myform')[0].reset();
如何修改此选项以排除重置“选择框”值?
由于
答案 0 :(得分:10)
致每个人......
重置功能不会将所有内容设置为''(空字符串)
它重置为初始值..(存储在value属性中,或选择选项等。)
如果你想保持默认的重置功能,那么你应该
<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>
答案 1 :(得分:6)
这不是jQuery,它是原生的javascript。 [0]显示实际的DOM元素,因此它与:
相同document.getElementById('myform').reset();
reset()
是一个内置的浏览器实现,可以重置整个表单。如果您需要重置单个表单类型,请尝试以下操作:
$('#myform :text').val('');
您可以在此处查看所有表单选择器:http://docs.jquery.com/Selectors
答案 2 :(得分:0)
您可以通过将值设置为空字符串并使用David的答案(或此more complete one)重置复选框来进行虚假重置。您还可以在重置表单之前尝试存储每个select元素的值,然后在以下值之后恢复值:
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'));
});
答案 3 :(得分:0)
无论出于何种原因,David的正确回答错误都是我的Google Chrome js。它说:
未捕获TypeError:对象#的属性'重置'不是函数
...所以我决定尝试一个稍微不同的解决方案:
<input id="resetbutton" type="reset" style="visibility:hidden;" name="reset" value="reset" />
<a href="#" onclick="$('#resetbutton').click();">Reset</a>